mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-12 09:39:28 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -81,7 +81,7 @@ class ViewMessage extends FHC_Controller
|
||||
'href' => $href
|
||||
);
|
||||
|
||||
$this->load->view('system/messageHTML.php', $data);
|
||||
$this->load->view('system/messages/messageHTML.php', $data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ class ViewMessage extends FHC_Controller
|
||||
|
||||
if (isEmptyString($token))
|
||||
{
|
||||
show_error('no token supplied');
|
||||
show_error('No token supplied');
|
||||
}
|
||||
|
||||
$msg = null;
|
||||
@@ -104,7 +104,7 @@ class ViewMessage extends FHC_Controller
|
||||
|
||||
if (!hasData($msg))
|
||||
{
|
||||
show_error('no message found');
|
||||
show_error('No message found');
|
||||
}
|
||||
|
||||
$msg = $msg->retval[0];
|
||||
@@ -114,7 +114,7 @@ class ViewMessage extends FHC_Controller
|
||||
|
||||
if (!hasData($receiverData))
|
||||
{
|
||||
show_error('no sender found');
|
||||
show_error('No sender found');
|
||||
}
|
||||
|
||||
$data = array (
|
||||
@@ -123,7 +123,7 @@ class ViewMessage extends FHC_Controller
|
||||
'token' => $token
|
||||
);
|
||||
|
||||
$this->load->view('system/messageWriteReply', $data);
|
||||
$this->load->view('system/messages/messageWriteReply', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -134,8 +134,6 @@ class ViewMessage extends FHC_Controller
|
||||
$this->load->model('system/Message_model', 'MessageModel');
|
||||
$this->load->library('MessageLib');
|
||||
|
||||
$error = false;
|
||||
|
||||
$subject = $this->input->post('subject');
|
||||
$body = $this->input->post('body');
|
||||
$persons = $this->input->post('persons');
|
||||
@@ -145,7 +143,6 @@ class ViewMessage extends FHC_Controller
|
||||
if (!isset($relationmessage_id) || $relationmessage_id == '' || !isset($token) || $token == '')
|
||||
{
|
||||
show_error('Error while sending reply');
|
||||
$error = true;
|
||||
}
|
||||
|
||||
$relationmsg = $this->MessageTokenModel->getMessageByToken($token);
|
||||
@@ -154,7 +151,6 @@ class ViewMessage extends FHC_Controller
|
||||
if (!hasData($relationmsg) || $relationmessage_id !== $relationmsg->retval[0]->message_id)
|
||||
{
|
||||
show_error('Error while sending reply');
|
||||
$error = true;
|
||||
}
|
||||
|
||||
// get sender (receiver of previous msg)
|
||||
@@ -166,20 +162,16 @@ class ViewMessage extends FHC_Controller
|
||||
// send message(s)
|
||||
if (hasData($data))
|
||||
{
|
||||
// Loads the person log library
|
||||
$this->load->library('PersonLogLib');
|
||||
|
||||
for ($i = 0; $i < count($data->retval); $i++)
|
||||
{
|
||||
$dataArray = (array)$data->retval[$i];
|
||||
|
||||
$msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $body, PRIORITY_NORMAL, $relationmessage_id, null);
|
||||
if ($msg->error)
|
||||
{
|
||||
show_error($msg->retval);
|
||||
$error = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// Loads the person log library
|
||||
$this->load->library('PersonLogLib');
|
||||
if ($msg->error) show_error($msg->retval);
|
||||
|
||||
// Write log entry for sender
|
||||
$logtype_kurzbz = 'Action';
|
||||
@@ -193,7 +185,8 @@ class ViewMessage extends FHC_Controller
|
||||
$oe_kurzbz = null;
|
||||
$insertvon = 'online';
|
||||
|
||||
$this->personloglib->log(
|
||||
// Logs person data
|
||||
$personLog = $this->personloglib->log(
|
||||
$sender_id,
|
||||
$logtype_kurzbz,
|
||||
$logdata,
|
||||
@@ -203,14 +196,11 @@ class ViewMessage extends FHC_Controller
|
||||
$insertvon
|
||||
);
|
||||
|
||||
//unpark bewerber after he sends message
|
||||
$this->personloglib->unPark($sender_id);
|
||||
// Unpark bewerber after he sends message
|
||||
$personLog = $this->personloglib->unPark($sender_id);
|
||||
}
|
||||
}
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
$this->load->view('system/messageSent');
|
||||
}
|
||||
$this->load->view('system/messages/messageReplySent');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,349 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* List all grades of a Student
|
||||
*/
|
||||
class Gradelist extends Auth_Controller
|
||||
{
|
||||
private $_grades; // Array of Grades
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => array('student:r', 'student/noten:r')
|
||||
)
|
||||
);
|
||||
|
||||
// Loads models
|
||||
$this->load->model('person/person_model', 'PersonModel');
|
||||
$this->load->model('organisation/studiengang_model', 'StudiengangModel');
|
||||
$this->load->model('crm/student_model', 'StudentModel');
|
||||
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
|
||||
$this->load->model('education/zeugnisnote_model', 'ZeugnisnoteModel');
|
||||
$this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||
$this->load->model('codex/note_model', 'NoteModel');
|
||||
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'person',
|
||||
'lehre',
|
||||
'ui'
|
||||
)
|
||||
);
|
||||
|
||||
$result_noten = $this->NoteModel->load();
|
||||
foreach ($result_noten->retval as $row)
|
||||
{
|
||||
$this->_grades[$row->note]['positiv'] = $row->positiv;
|
||||
$this->_grades[$row->note]['anmerkung'] = $row->anmerkung;
|
||||
$this->_grades[$row->note]['notenwert'] = $row->notenwert;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Print all Grades of a person
|
||||
* @param $uid UID of the Person
|
||||
*/
|
||||
public function index($uid = null)
|
||||
{
|
||||
if (is_null($uid))
|
||||
$uid = getAuthUID();
|
||||
|
||||
// load student
|
||||
$student = $this->StudentModel->load(array($uid));
|
||||
if (!isSuccess($student) || !hasData($student))
|
||||
{
|
||||
echo "You have no Permission or User does not exists";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Check if logged in User has permission to see grades of this person
|
||||
$stg = $this->StudiengangModel->load($student->retval[0]->studiengang_kz);
|
||||
if (!$this->hasPermission($uid, $stg->retval[0]->oe_kurzbz))
|
||||
{
|
||||
echo "You have no Permission or User does not exists";
|
||||
exit;
|
||||
}
|
||||
$person = $this->PersonModel->getByUid($uid);
|
||||
|
||||
$courses = $this->loadCourseInformation($student->retval[0]->prestudent_id, $student->retval[0]->student_uid);
|
||||
|
||||
$data = array (
|
||||
"user" => $uid,
|
||||
"person" => $person->retval[0],
|
||||
"courses" => $courses,
|
||||
"grades" => $this->_grades
|
||||
);
|
||||
|
||||
$this->load->view('person/gradelist/gradelist.php', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the Logged in User has permission to see the grades of this person
|
||||
* @param $uid UID of the Person we want to see
|
||||
* @param $oe_kurzbz Organisation Unit of the Person we want to see
|
||||
* @return true if the logged in User is allowed to see the content, false if not
|
||||
*/
|
||||
private function hasPermission($uid, $oe_kurzbz)
|
||||
{
|
||||
$loggedinUser = getAuthUID();
|
||||
if($uid != $loggedinUser)
|
||||
{
|
||||
$this->load->library('PermissionLib');
|
||||
if($this->permissionlib->isBerechtigt('student/noten','s',$oe_kurzbz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the Courses and Grades of the Student
|
||||
*
|
||||
* @param $prestudent_id of the Student
|
||||
* @return array with the courses
|
||||
*/
|
||||
private function loadCourseInformation($prestudent_id, $uid)
|
||||
{
|
||||
$this->load->library('StudienplanLib');
|
||||
|
||||
// Get status of Student
|
||||
$result_status = $this->PrestudentstatusModel->getStatusByFilter($prestudent_id);
|
||||
|
||||
if (isError($result_status) || !hasData($result_status))
|
||||
{
|
||||
return error('No Status Found');
|
||||
}
|
||||
|
||||
// Get Courses from studyplan for each semester of the student
|
||||
foreach ($result_status->retval as $row_status)
|
||||
{
|
||||
if (in_array($row_status->status_kurzbz,
|
||||
array('Student','Diplomand','Incoming','Abbrecher','Unterbrecher','Absolvent')))
|
||||
{
|
||||
// LVs fuer das Semester holen lt Studienplan
|
||||
$lvtree = $this->studienplanlib->getLehrveranstaltungTree(
|
||||
$row_status->studienplan_id,
|
||||
$row_status->ausbildungssemester,
|
||||
true
|
||||
);
|
||||
$courses['semester'][$row_status->studiensemester_kurzbz]['lvs'] = $lvtree;
|
||||
$courses['semester'][$row_status->studiensemester_kurzbz]['lvs_nonstpl'] = array();
|
||||
|
||||
$result_stpl = $this->StudienplanModel->load($row_status->studienplan_id);
|
||||
if(isSuccess($result_stpl) && hasData($result_stpl))
|
||||
{
|
||||
$stpl_bezeichnung = $result_stpl->retval[0]->bezeichnung;
|
||||
}
|
||||
else
|
||||
$stpl_bezeichnung = 'unknown';
|
||||
|
||||
$courses['semester'][$row_status->studiensemester_kurzbz]['data'] = array(
|
||||
'status' => $row_status->status_kurzbz,
|
||||
'ausbildungssemester' => $row_status->ausbildungssemester,
|
||||
'studiensemester_kurzbz' => $row_status->studiensemester_kurzbz,
|
||||
'studienplan_id' => $row_status->studienplan_id,
|
||||
'studienplan_bezeichnung' => $stpl_bezeichnung,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Load Grades and add to studyplan
|
||||
$result_zeugnis = $this->ZeugnisnoteModel->loadWhere(array("student_uid" => $uid));
|
||||
|
||||
if (isSuccess($result_zeugnis) && hasData($result_zeugnis))
|
||||
{
|
||||
foreach ($courses['semester'] as $key=>$value)
|
||||
{
|
||||
$this->fillNotenPart(
|
||||
$result_zeugnis,
|
||||
$courses['semester'][$key]['lvs'],
|
||||
$value['data']['studiensemester_kurzbz']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Build Array of Courses that are not part of the studyplan
|
||||
foreach ($result_zeugnis->retval as $row_noten)
|
||||
{
|
||||
if (!isset($row_noten->found))
|
||||
{
|
||||
$result_lv = $this->LehrveranstaltungModel->load($row_noten->lehrveranstaltung_id);
|
||||
$courses['semester'][$row_noten->studiensemester_kurzbz]['lvs_nonstpl'][] = array(
|
||||
'lehrveranstaltung_id' => $row_noten->lehrveranstaltung_id,
|
||||
'lehrtyp_kurzbz' => $result_lv->retval[0]->lehrtyp_kurzbz,
|
||||
'pflicht' => false,
|
||||
'bezeichnung' => $result_lv->retval[0]->bezeichnung,
|
||||
'ects' => $result_lv->retval[0]->ects,
|
||||
'note' => $row_noten->note,
|
||||
'datum' => $row_noten->benotungsdatum
|
||||
);
|
||||
if(!isset($courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl']))
|
||||
$courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] = 0;
|
||||
$courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] += $result_lv->retval[0]->ects;
|
||||
}
|
||||
}
|
||||
|
||||
$sum_gradeweighted_overall = 0;
|
||||
$sum_ectsweighted_overall = 0;
|
||||
$sum_grades_overall = 0;
|
||||
$num_grades_overall = 0;
|
||||
$sum_ects_overall = 0;
|
||||
$sum_ects_positiv_overall = 0;
|
||||
|
||||
// Calculate Sum and Average
|
||||
foreach ($courses['semester'] as $stsem => $row_lvs)
|
||||
{
|
||||
$grades = $this->getGrades($row_lvs['lvs']);
|
||||
|
||||
$num_grades = 0;
|
||||
$sum_ects = 0;
|
||||
$sum_ects_positiv = 0;
|
||||
$sum_grades = 0;
|
||||
$notendurchschnitt = 0;
|
||||
$sum_gradeweighted = 0;
|
||||
$sum_ectsweighted = 0;
|
||||
|
||||
foreach ($grades as $row)
|
||||
{
|
||||
if ($this->_grades[$row['note']]['notenwert'] != '')
|
||||
{
|
||||
$num_grades++;
|
||||
$sum_grades += $this->_grades[$row['note']]['notenwert'];
|
||||
|
||||
$sum_ectsweighted += $row['ects'];
|
||||
$sum_gradeweighted += $row['ects'] * $this->_grades[$row['note']]['notenwert'];
|
||||
}
|
||||
$sum_ects += $row['ects'];
|
||||
if ($this->_grades[$row['note']]['positiv'])
|
||||
$sum_ects_positiv += $row['ects'];
|
||||
}
|
||||
if ($num_grades > 0)
|
||||
$notendurchschnitt = $sum_grades / $num_grades;
|
||||
else
|
||||
$notendurchschnitt = 0;
|
||||
|
||||
if ($sum_ectsweighted > 0)
|
||||
$notendurchschnittgewichtet = $sum_gradeweighted / $sum_ectsweighted;
|
||||
else
|
||||
$notendurchschnittgewichtet = 0;
|
||||
|
||||
$num_grades_overall += $num_grades;
|
||||
$sum_grades_overall += $sum_grades;
|
||||
$sum_gradeweighted_overall += $sum_gradeweighted;
|
||||
$sum_ectsweighted_overall += $sum_ectsweighted;
|
||||
$sum_ects_overall += $sum_ects;
|
||||
$sum_ects_positiv_overall += $sum_ects_positiv;
|
||||
|
||||
$courses['semester'][$stsem]['data']['notendurchschnitt'] = number_format($notendurchschnitt, 2);
|
||||
$courses['semester'][$stsem]['data']['notendurchschnittgewichtet'] = number_format($notendurchschnittgewichtet, 2);
|
||||
$courses['semester'][$stsem]['data']['ectssumme'] = number_format($sum_ects,2);
|
||||
$courses['semester'][$stsem]['data']['ectssumme_positiv'] = number_formaT($sum_ects_positiv,2);
|
||||
}
|
||||
|
||||
if ($num_grades_overall > 0)
|
||||
$notendurchschnitt = $sum_grades_overall / $num_grades_overall;
|
||||
else
|
||||
$notendurchschnitt = 0;
|
||||
|
||||
if ($sum_ectsweighted_overall > 0)
|
||||
$notendurchschnittgewichtet = $sum_gradeweighted_overall / $sum_ectsweighted_overall;
|
||||
else
|
||||
$notendurchschnittgewichtet = 0;
|
||||
|
||||
$courses['overall'] = array(
|
||||
'notendurchschnitt' => number_format($notendurchschnitt, 2),
|
||||
'notendurchschnittgewichtet' => number_format($notendurchschnittgewichtet, 2),
|
||||
'ectssumme' => $sum_ects_overall,
|
||||
'ectssumme_positiv' => $sum_ects_positiv_overall
|
||||
);
|
||||
return $courses;
|
||||
}
|
||||
|
||||
/**
|
||||
* Combines the Studyplan Courses recursively with the Grades of the Student
|
||||
* Grades that are found in the Studyplan are marked, the others are added to a separate list
|
||||
* @param $noten reference to array of all grades.
|
||||
* @param $courses reference to array of all courses.
|
||||
* @param $studiensemester_kurzbz Studiensemester of the Course and Grades
|
||||
*/
|
||||
private function fillNotenPart(&$noten, &$courses, $studiensemester_kurzbz)
|
||||
{
|
||||
foreach ($courses as $key => $value)
|
||||
{
|
||||
foreach ($noten->retval as $notenkey => $row_noten)
|
||||
{
|
||||
if ($row_noten->lehrveranstaltung_id == $value['lehrveranstaltung_id']
|
||||
&& $row_noten->studiensemester_kurzbz == $studiensemester_kurzbz)
|
||||
{
|
||||
$courses[$key]['note'] = $row_noten->note;
|
||||
$courses[$key]['datum'] = $row_noten->benotungsdatum;
|
||||
$noten->retval[$notenkey]->found = true;
|
||||
}
|
||||
if (isset($value['childs']))
|
||||
$this->fillNotenPart($noten, $courses[$key]['childs'], $studiensemester_kurzbz);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads all the Courses recursivly and Returns an Array with the Grades and ECTS
|
||||
* @param $courses array of courses
|
||||
* @return array with grades and ects
|
||||
*/
|
||||
public function getGrades($courses)
|
||||
{
|
||||
$grades = array();
|
||||
foreach ($courses as $row)
|
||||
{
|
||||
if (isset($row['note']) && $row['note'] != '')
|
||||
{
|
||||
$grades[] = array(
|
||||
'note' => $row['note'],
|
||||
'ects' => $row['ects']
|
||||
);
|
||||
}
|
||||
|
||||
if ($row['childs'])
|
||||
{
|
||||
$childgrades = $this->getGrades($row['childs']);
|
||||
$grades = array_merge($grades, $childgrades);
|
||||
}
|
||||
}
|
||||
return $grades;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper Function to Display recursive Courses
|
||||
* @param $course array if courses
|
||||
* @param $depth integer defines the number parent elements
|
||||
*/
|
||||
static function printRow($course, $depth)
|
||||
{
|
||||
$ci =& get_instance();
|
||||
$ci->load->view('person/gradelist/course.php',
|
||||
array(
|
||||
'course' => $course,
|
||||
'depth' => $depth
|
||||
)
|
||||
);
|
||||
|
||||
if (isset($course['childs']))
|
||||
{
|
||||
foreach ($course['childs'] as $row_course)
|
||||
Gradelist::printRow($row_course, $depth + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class FASMessages extends Auth_Controller
|
||||
{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'write' => 'basis/message:rw',
|
||||
'writeReply' => 'basis/message:rw'
|
||||
)
|
||||
);
|
||||
|
||||
// Loads the message library
|
||||
$this->load->library('MessageLib');
|
||||
|
||||
// Loads the widget library
|
||||
$this->load->library('WidgetLib');
|
||||
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Write a new message
|
||||
*/
|
||||
public function write($sender_id)
|
||||
{
|
||||
$prestudent_id = $this->input->post('prestudent_id'); // recipients prestudend_id(s)
|
||||
|
||||
if (!is_numeric($sender_id))
|
||||
{
|
||||
show_error('The current logged user person_id is not defined');
|
||||
}
|
||||
|
||||
$msgVarsData = $this->_getMsgVarsData($prestudent_id);
|
||||
|
||||
// Retrieves message vars for a person from view view vw_msg_vars_person
|
||||
$variablesArray = $this->messagelib->getMessageVarsPerson();
|
||||
|
||||
// Organisation units used to get the templates
|
||||
$oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id);
|
||||
|
||||
// Admin or commoner?
|
||||
$isAdmin = $this->messagelib->getIsAdmin($sender_id);
|
||||
|
||||
$data = array(
|
||||
'recipients' => $msgVarsData->retval,
|
||||
'variables' => $variablesArray,
|
||||
'oe_kurzbz' => $oe_kurzbz, // used to get the templates
|
||||
'isAdmin' => $isAdmin
|
||||
);
|
||||
|
||||
$this->load->view('system/messages/messageWrite', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Write a reply
|
||||
*/
|
||||
public function writeReply($sender_id, $msg_id, $receiver_id)
|
||||
{
|
||||
$prestudent_id = $this->input->post('prestudent_id'); // recipients prestudend_id(s)
|
||||
|
||||
if (!is_numeric($sender_id))
|
||||
{
|
||||
show_error('The current logged user person_id is not defined');
|
||||
}
|
||||
|
||||
if (!is_numeric($msg_id))
|
||||
{
|
||||
show_error('The msg_id must be a number');
|
||||
}
|
||||
|
||||
if (!is_numeric($receiver_id))
|
||||
{
|
||||
show_error('The receiver_id must be a number');
|
||||
}
|
||||
|
||||
$msg = $this->_getMessage($msg_id, $receiver_id);
|
||||
|
||||
$msgVarsData = $this->_getMsgVarsData($prestudent_id);
|
||||
|
||||
// Retrieves message vars for a person from view view vw_msg_vars_person
|
||||
$variablesArray = $this->messagelib->getMessageVarsPerson();
|
||||
|
||||
// Organisation units used to get the templates
|
||||
$oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id);
|
||||
|
||||
// Admin or commoner?
|
||||
$isAdmin = $this->messagelib->getIsAdmin($sender_id);
|
||||
|
||||
$data = array(
|
||||
'recipients' => $msgVarsData->retval,
|
||||
'message' => $msg,
|
||||
'variables' => $variablesArray,
|
||||
'oe_kurzbz' => $oe_kurzbz, // used to get the templates
|
||||
'isAdmin' => $isAdmin
|
||||
);
|
||||
|
||||
$this->load->view('system/messages/messageWrite', $data);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _getMessage($msg_id, $receiver_id)
|
||||
{
|
||||
$msg = $this->messagelib->getMessage($msg_id, $receiver_id);
|
||||
if (isError($msg))
|
||||
{
|
||||
show_error($msg->retval);
|
||||
}
|
||||
elseif (!hasData($msg))
|
||||
{
|
||||
show_error('The selected message does not exist');
|
||||
}
|
||||
else
|
||||
{
|
||||
$msg = $msg->retval[0];
|
||||
}
|
||||
|
||||
return $msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves message vars from view vw_msg_vars
|
||||
*/
|
||||
private function _getMsgVarsData($prestudent_id)
|
||||
{
|
||||
$this->load->model('system/Message_model', 'MessageModel');
|
||||
$msgVarsData = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id);
|
||||
|
||||
if (isError($msgVarsData))
|
||||
{
|
||||
show_error($msgVarsData->retval);
|
||||
}
|
||||
|
||||
return $msgVarsData;
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,6 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Messages extends Auth_Controller
|
||||
{
|
||||
private $uid; // contains the UID of the logged user
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -28,344 +26,189 @@ class Messages extends Auth_Controller
|
||||
// Loads the widget library
|
||||
$this->load->library('WidgetLib');
|
||||
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
$this->load->model('system/Message_model', 'MessageModel');
|
||||
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'person',
|
||||
'lehre',
|
||||
'ui',
|
||||
'infocenter'
|
||||
'ui'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* write
|
||||
* Write a new message
|
||||
*/
|
||||
public function write($sender_id = null, $msg_id = null, $receiver_id = null)
|
||||
public function write()
|
||||
{
|
||||
if ($sender_id === null)
|
||||
{
|
||||
$user_person = $this->PersonModel->getByUid($this->uid);
|
||||
|
||||
if (isError($user_person))
|
||||
{
|
||||
show_error($user_person->retval);
|
||||
}
|
||||
$sender_id = $user_person->retval[0]->person_id;
|
||||
}
|
||||
|
||||
$prestudent_id = $this->input->post('prestudent_id');
|
||||
$person_id = $this->input->post('person_id');
|
||||
$personOnly = false;
|
||||
$sender_id = null;
|
||||
|
||||
if (isset($person_id) && !isset($prestudent_id))
|
||||
$personOnly = true;
|
||||
|
||||
$msg = null;
|
||||
|
||||
// Get message data if possible
|
||||
if (is_numeric($msg_id) && is_numeric($receiver_id))
|
||||
$authUser = $this->_getAuthUser();
|
||||
if (isError($authUser))
|
||||
{
|
||||
$msg = $this->messagelib->getMessage($msg_id, $receiver_id);
|
||||
if ($msg->error)
|
||||
{
|
||||
show_error($msg->retval);
|
||||
}
|
||||
else
|
||||
{
|
||||
$msg = $msg->retval[0];
|
||||
}
|
||||
show_error($authUser->retval);
|
||||
}
|
||||
|
||||
$variablesArray = array();
|
||||
$msgVarsData = array();
|
||||
|
||||
// Get variables
|
||||
$this->load->model('system/Message_model', 'MessageModel');
|
||||
if ($personOnly === true)
|
||||
$this->getPersonMsgData($person_id, $variablesArray, $msgVarsData);
|
||||
else
|
||||
$this->getPrestudentMsgData($prestudent_id, $variablesArray, $msgVarsData);
|
||||
|
||||
// Organisation units used to get the templates
|
||||
$oe_kurzbz = array(); // A person can have more organisation units
|
||||
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
|
||||
$benutzerResult = $this->BenutzerfunktionModel->getByPersonId($sender_id);
|
||||
if (hasData($benutzerResult))
|
||||
{
|
||||
foreach ($benutzerResult->retval as $val)
|
||||
{
|
||||
$oe_kurzbz[] = $val->oe_kurzbz;
|
||||
}
|
||||
$sender_id = getData($authUser)[0]->person_id;
|
||||
}
|
||||
|
||||
// Admin or commoner?
|
||||
$this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel');
|
||||
$isAdmin = $this->BenutzerrolleModel->isAdminByPersonId($sender_id);
|
||||
if (isError($isAdmin))
|
||||
{
|
||||
show_error($isAdmin->retval);
|
||||
}
|
||||
$msgVarsData = $this->_getMsgVarsData($person_id);
|
||||
|
||||
// Retrieves message vars for a person from view view vw_msg_vars_person
|
||||
$variablesArray = $this->messagelib->getMessageVarsPerson();
|
||||
|
||||
// Organisation units used to get the templates
|
||||
$oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id);
|
||||
|
||||
// Admin or commoner?
|
||||
$isAdmin = $this->messagelib->getIsAdmin($sender_id);
|
||||
|
||||
$data = array (
|
||||
'sender_id' => $sender_id,
|
||||
'receivers' => isset($msgVarsData->retval) ? $msgVarsData->retval : $msgVarsData,
|
||||
'message' => $msg,
|
||||
'recipients' => $msgVarsData->retval,
|
||||
'variables' => $variablesArray,
|
||||
'oe_kurzbz' => $oe_kurzbz, // used to get the templates
|
||||
'isAdmin' => $isAdmin->retval,
|
||||
'personOnly' => $personOnly//indicates if sent only to persons
|
||||
'isAdmin' => $isAdmin
|
||||
);
|
||||
|
||||
$v = $this->load->view('system/messageWrite', $data);
|
||||
$this->load->view('system/messages/messageWrite', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets Message Variables and their data for Prestudent
|
||||
* @param $prestudent_id
|
||||
* @param $variablesArray to be filled with variable names
|
||||
* @param $msgVarsData to be filled with variable data
|
||||
* Send message
|
||||
*/
|
||||
private function getPrestudentMsgData($prestudent_id, &$variablesArray, &$msgVarsData)
|
||||
public function send()
|
||||
{
|
||||
$msgVarsData = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id);
|
||||
if ($msgVarsData->error)
|
||||
{
|
||||
show_error($msgVarsData->retval);
|
||||
}
|
||||
$persons = $this->input->post('persons');
|
||||
$relationmessage_id = $this->input->post('relationmessage_id');
|
||||
|
||||
if (!hasData($variables = $this->MessageModel->getMessageVars()))
|
||||
{
|
||||
unset($variables);
|
||||
}
|
||||
else
|
||||
{
|
||||
$variablesArray = array();
|
||||
// Skip person_id and prestudent_id
|
||||
for ($i = 2; $i < count($variables->retval); $i++)
|
||||
{
|
||||
$variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i];
|
||||
}
|
||||
}
|
||||
$msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($persons);
|
||||
|
||||
array_shift($variables->retval); // Remove person_id
|
||||
array_shift($variables->retval); // Remove prestudent_id
|
||||
}
|
||||
$send = $this->_send($msgVarsData, $relationmessage_id);
|
||||
|
||||
/**
|
||||
* gets Message Variables and their data for Person
|
||||
* @param $person_id
|
||||
* @param $variablesArray to be filled with variable names
|
||||
* @param $msgVarsData to be filled with variable data
|
||||
*/
|
||||
private function getPersonMsgData($person_id, &$variablesArray, &$msgVarsData)
|
||||
{
|
||||
$msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($person_id);
|
||||
if ($msgVarsData->error)
|
||||
{
|
||||
show_error($msgVarsData->retval);
|
||||
}
|
||||
|
||||
if (!hasData($variables = $this->MessageModel->getMessageVarsPerson()))
|
||||
{
|
||||
unset($variables);
|
||||
}
|
||||
else
|
||||
{
|
||||
$variablesArray = array();
|
||||
// Skip person_id
|
||||
for ($i = 1; $i < count($variables->retval); $i++)
|
||||
{
|
||||
$variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i];
|
||||
}
|
||||
array_shift($variables->retval); // Remove person_id
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* send
|
||||
*/
|
||||
public function send($sender_id = null)
|
||||
{
|
||||
$result = $this->_execSend($sender_id);
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
echo "Messages sent successfully";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Error when sending message";
|
||||
}
|
||||
$this->load->view('system/messages/messageSent', array('success' => isSuccess($send)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Send message, response is in JSON format
|
||||
* @param $sender_id
|
||||
*/
|
||||
public function sendJson($sender_id = null)
|
||||
public function sendJson()
|
||||
{
|
||||
$result = $this->_execSend($sender_id);
|
||||
$prestudents = $this->input->post('prestudents');
|
||||
$vorlage_kurzbz = $this->input->post('vorlage_kurzbz');
|
||||
$oe_kurzbz = $this->input->post('oe_kurzbz');
|
||||
$msgVars = $this->input->post('msgvars');
|
||||
|
||||
$this->output
|
||||
->set_content_type('application/json')
|
||||
->set_output(json_encode($result));
|
||||
$msgVarsData = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents);
|
||||
|
||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
$prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents);
|
||||
|
||||
// Adds the organisation unit to each prestudent
|
||||
if (isEmptyString($oe_kurzbz) && hasData($msgVarsData) && hasData($prestudentsData))
|
||||
{
|
||||
for ($i = 0; $i < count($msgVarsData->retval); $i++)
|
||||
{
|
||||
for ($p = 0; $p < count($prestudentsData->retval); $p++)
|
||||
{
|
||||
if ($prestudentsData->retval[$p]->prestudent_id == $msgVarsData->retval[$i]->prestudent_id)
|
||||
{
|
||||
$msgVarsData->retval[$i]->oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$send = $this->_send($msgVarsData, null, $oe_kurzbz, $vorlage_kurzbz, $msgVars);
|
||||
if (isError($send))
|
||||
{
|
||||
$this->outputJsonError($send->retval);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonSuccess($send->retval);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Executes message sending
|
||||
* @param $sender_id
|
||||
* @return array wether execution was successfull - error or success
|
||||
*/
|
||||
private function _execSend($sender_id)
|
||||
private function _send($msgVarsData, $relationmessage_id = null, $oe_kurzbz = null, $vorlage_kurzbz = null, $msgVars = null)
|
||||
{
|
||||
if ($sender_id === null)
|
||||
{
|
||||
$user_person = $this->PersonModel->getByUid($this->uid);
|
||||
|
||||
if (!hasData($user_person))
|
||||
{
|
||||
return error('no sender');
|
||||
}
|
||||
$sender_id = $user_person->retval[0]->person_id;
|
||||
}
|
||||
|
||||
$subject = $this->input->post('subject');
|
||||
$body = $this->input->post('body');
|
||||
$prestudents = $this->input->post('prestudents');
|
||||
$persons = $this->input->post('persons');
|
||||
$relationmessage_id = $this->input->post('relationmessage_id');
|
||||
$vorlage_kurzbz = $this->input->post('vorlage_kurzbz');
|
||||
$oe_kurzbz = $this->input->post('oe_kurzbz');
|
||||
$msgvars = $this->input->post('msgvars');
|
||||
|
||||
if (!isset($relationmessage_id) || $relationmessage_id == '')
|
||||
{
|
||||
$relationmessage_id = null;
|
||||
}
|
||||
$authUser = $this->_getAuthUser();
|
||||
|
||||
// get message data of prestudents or persons
|
||||
$prestudentsData = array();
|
||||
if ($prestudents !== null)
|
||||
{
|
||||
$data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents);
|
||||
//
|
||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
$prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents);
|
||||
}
|
||||
else
|
||||
$data = $this->MessageModel->getMsgVarsDataByPersonId($persons);
|
||||
if (isError($authUser)) return $authUser;
|
||||
|
||||
// send message(s)
|
||||
if (hasData($data))
|
||||
$sender_id = getData($authUser)[0]->person_id;
|
||||
|
||||
// Send message(s)
|
||||
if (hasData($msgVarsData))
|
||||
{
|
||||
for ($i = 0; $i < count($data->retval); $i++)
|
||||
// Loads the person log library
|
||||
$this->load->library('PersonLogLib');
|
||||
|
||||
for ($i = 0; $i < count($msgVarsData->retval); $i++)
|
||||
{
|
||||
$parsedText = "";
|
||||
$dataArray = (array)$data->retval[$i];
|
||||
foreach ($dataArray as $key => $val)
|
||||
{
|
||||
$newKey = str_replace(" ", "_", strtolower($key));
|
||||
$dataArray[$newKey] = $dataArray[$key];
|
||||
}
|
||||
$msgVarsDataArray = $this->_replaceKeys((array)$msgVarsData->retval[$i]); // replaces array keys
|
||||
|
||||
// if oe not given, get from prestudent
|
||||
if (isEmptyString($oe_kurzbz) && hasData($prestudentsData))
|
||||
{
|
||||
for ($p = 0; $p < count($prestudentsData->retval); $p++)
|
||||
{
|
||||
if ($prestudentsData->retval[$p]->prestudent_id == $data->retval[$i]->prestudent_id)
|
||||
{
|
||||
$oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// send without vorlage
|
||||
// Send without vorlage
|
||||
if (isEmptyString($vorlage_kurzbz))
|
||||
{
|
||||
$parsedText = $this->messagelib->parseMessageText($body, $dataArray);
|
||||
$msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id, $oe_kurzbz);
|
||||
$parsedText = $this->messagelib->parseMessageText($body, $msgVarsDataArray);
|
||||
$msg = $this->messagelib->sendMessage($sender_id, $msgVarsDataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id, $oe_kurzbz);
|
||||
}
|
||||
// send with vorlage
|
||||
// Send with vorlage
|
||||
else
|
||||
{
|
||||
if (isset($msgvars) && is_array($msgvars))
|
||||
if (is_array($msgVars))
|
||||
{
|
||||
//additional message variables
|
||||
foreach ($msgvars as $key => $msgvar)
|
||||
// Additional message variables
|
||||
foreach ($msgVars as $key => $msgvar)
|
||||
{
|
||||
$dataArray[$key] = $msgvar;
|
||||
$msgVarsDataArray[$key] = $msgvar;
|
||||
}
|
||||
}
|
||||
$msg = $this->messagelib->sendMessageVorlage($sender_id, $dataArray['person_id'], $vorlage_kurzbz, $oe_kurzbz, $dataArray);
|
||||
$msg = $this->messagelib->sendMessageVorlage($sender_id, $msgVarsDataArray['person_id'], $vorlage_kurzbz, $oe_kurzbz, $msgVarsDataArray);
|
||||
}
|
||||
|
||||
if ($msg->error)
|
||||
{
|
||||
return error($msg->msg);
|
||||
}
|
||||
if (isError($msg)) return $msg;
|
||||
|
||||
// Loads the person log library
|
||||
$this->load->library('PersonLogLib');
|
||||
|
||||
//write log entry
|
||||
$this->personloglib->log(
|
||||
$dataArray['person_id'],
|
||||
// Write log entry
|
||||
$personLog = $this->personloglib->log(
|
||||
$msgVarsDataArray['person_id'],
|
||||
'Action',
|
||||
array(
|
||||
'name' => 'Message sent',
|
||||
'message' => 'Message sent from person '.$sender_id.' to '.$dataArray['person_id'].', messageid '.$msg->retval,
|
||||
'message' => 'Message sent from person '.$sender_id.' to '.$msgVarsDataArray['person_id'].', messageid '.$msg->retval,
|
||||
'success' => 'true'
|
||||
),
|
||||
'kommunikation',
|
||||
'core',
|
||||
null,
|
||||
$this->uid
|
||||
getAuthUID()
|
||||
);
|
||||
|
||||
}
|
||||
return success('success');
|
||||
|
||||
return success('Messages sent successfully');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getPersonId
|
||||
*/
|
||||
private function getPersonId()
|
||||
{
|
||||
$person_id = null;
|
||||
|
||||
if ($this->input->get('person_id') !== null)
|
||||
else
|
||||
{
|
||||
$person_id = $this->input->get('person_id');
|
||||
return $msgVarsData;
|
||||
}
|
||||
elseif ($this->input->post('person_id') !== null)
|
||||
{
|
||||
$person_id = $this->input->get('person_id');
|
||||
}
|
||||
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
show_error('Person_id is not numeric');
|
||||
}
|
||||
|
||||
return $person_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->uid = getAuthUID();
|
||||
|
||||
if (!$this->uid) show_error('User authentification failed');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -374,16 +217,27 @@ class Messages extends Auth_Controller
|
||||
public function getVorlage()
|
||||
{
|
||||
$vorlage_kurzbz = $this->input->get('vorlage_kurzbz');
|
||||
$result = null;
|
||||
|
||||
if (isset($vorlage_kurzbz))
|
||||
if (!isEmptyString($vorlage_kurzbz))
|
||||
{
|
||||
$this->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel');
|
||||
$this->VorlagestudiengangModel->addOrder('version','DESC');
|
||||
$result = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz));
|
||||
|
||||
$this->output
|
||||
->set_content_type('application/json')
|
||||
->set_output(json_encode($result));
|
||||
$result = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz));
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error('The given vorlage_kurzbz is not valid');
|
||||
}
|
||||
|
||||
if (isError($result) || !hasData($result))
|
||||
{
|
||||
$this->outputJsonError($result->retval);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonSuccess($result->retval);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -392,35 +246,29 @@ class Messages extends Auth_Controller
|
||||
*/
|
||||
public function parseMessageText()
|
||||
{
|
||||
$prestudent_id = $this->input->get('prestudent_id');
|
||||
$person_id = $this->input->get('person_id');
|
||||
$text = $this->input->get('text');
|
||||
|
||||
$parsedText = '';
|
||||
$data = null;
|
||||
|
||||
if (isset($person_id) && !isset($prestudent_id))
|
||||
$data = $this->MessageModel->getMsgVarsDataByPersonId($person_id);
|
||||
elseif (isset($prestudent_id))
|
||||
$data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id);
|
||||
|
||||
if (isset($data))
|
||||
if (is_numeric($person_id))
|
||||
{
|
||||
$parsedText = "";
|
||||
if (hasData($data))
|
||||
{
|
||||
$dataArray = (array)$data->retval[0];
|
||||
foreach ($dataArray as $key => $val)
|
||||
{
|
||||
$newKey = str_replace(" ", "_", strtolower($key));
|
||||
$dataArray[$newKey] = $dataArray[$key];
|
||||
}
|
||||
$data = $this->MessageModel->getMsgVarsDataByPersonId($person_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data = error('The given person_id is not a valid number');
|
||||
}
|
||||
|
||||
$parsedText = $this->messagelib->parseMessageText($text, $dataArray);
|
||||
}
|
||||
if (isError($data) || !hasData($data))
|
||||
{
|
||||
$this->outputJsonError($data->retval);
|
||||
}
|
||||
else
|
||||
{
|
||||
$parsedText = $this->messagelib->parseMessageText($text, $this->_replaceKeys((array)$data->retval[0]));
|
||||
|
||||
$this->output
|
||||
->set_content_type('application/json')
|
||||
->set_output(json_encode($parsedText));
|
||||
$this->outputJsonSuccess($parsedText);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -433,6 +281,7 @@ class Messages extends Auth_Controller
|
||||
{
|
||||
$msg_id = $this->input->get('msg_id');
|
||||
$receiver_id = $this->input->get('receiver_id');
|
||||
|
||||
$msg = $this->messagelib->getMessage($msg_id, $receiver_id);
|
||||
|
||||
$this->output
|
||||
@@ -440,4 +289,51 @@ class Messages extends Auth_Controller
|
||||
->set_output(json_encode(array($msg->retval[0])));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Retrieves message vars from view vw_msg_vars
|
||||
*/
|
||||
private function _getMsgVarsData($person_id)
|
||||
{
|
||||
$msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($person_id);
|
||||
if (isError($msgVarsData))
|
||||
{
|
||||
show_error($msgVarsData->retval);
|
||||
}
|
||||
|
||||
return $msgVarsData;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _getAuthUser()
|
||||
{
|
||||
$sender_id = null;
|
||||
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
$authUser = $this->PersonModel->getByUid(getAuthUID());
|
||||
|
||||
if (!hasData($authUser)) $authUser = error('The current logged user person_id is not defined');
|
||||
|
||||
return $authUser;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _replaceKeys($data)
|
||||
{
|
||||
$tmpData = array();
|
||||
|
||||
// Replaces data array keys to a lowercase without spaces string
|
||||
foreach ($data as $key => $val)
|
||||
{
|
||||
$tmpData[str_replace(' ', '_', strtolower($key))] = $val;
|
||||
}
|
||||
|
||||
return $tmpData;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@ class Phrases extends Auth_Controller
|
||||
'view' => 'system/phrase:r',
|
||||
'deltext' => 'system/phrase:rw',
|
||||
'edit' => 'system/phrase:rw',
|
||||
'write' => 'system/phrase:rw',
|
||||
'save' => 'system/phrase:rw',
|
||||
'newText' => 'system/phrase:rw',
|
||||
'editText' => 'system/phrase:rw',
|
||||
@@ -115,19 +114,6 @@ class Phrases extends Auth_Controller
|
||||
$this->load->view('system/phrases/phrasesEdit', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function write()
|
||||
{
|
||||
$data = array(
|
||||
'subject' => 'TestSubject',
|
||||
'body' => 'TestDevelopmentBodyText'
|
||||
);
|
||||
|
||||
$this->load->view('system/messageWrite', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -631,7 +631,7 @@ class InfoCenter extends Auth_Controller
|
||||
public function reloadMessages($person_id)
|
||||
{
|
||||
$messages = $this->MessageModel->getMessagesOfPerson($person_id, 1);
|
||||
$this->load->view('system/messageList.php', array('messages' => $messages->retval));
|
||||
$this->load->view('system/messages/messageList.php', array('messages' => $messages->retval));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1166,8 +1166,6 @@ class InfoCenter extends Auth_Controller
|
||||
show_error($user_person->retval);
|
||||
}
|
||||
|
||||
$messagelink = site_url('/system/Messages/write/'.$user_person->retval[0]->person_id);
|
||||
|
||||
$data = array (
|
||||
'lockedby' => $lockedby,
|
||||
'lockedbyother' => $lockedbyother,
|
||||
@@ -1177,8 +1175,7 @@ class InfoCenter extends Auth_Controller
|
||||
'messages' => $messages->retval,
|
||||
'logs' => $logs,
|
||||
'notizen' => $notizen->retval,
|
||||
'notizenbewerbung' => $notizen_bewerbung->retval,
|
||||
'messagelink' => $messagelink
|
||||
'notizenbewerbung' => $notizen_bewerbung->retval
|
||||
);
|
||||
|
||||
return $data;
|
||||
|
||||
@@ -82,6 +82,21 @@ function hasData($result)
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the property retval if $result contains data
|
||||
*/
|
||||
function getData($result)
|
||||
{
|
||||
$data = null;
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$data = $result->retval;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the result represents an error
|
||||
* Wrapper function of isSuccess, more readable code
|
||||
|
||||
@@ -9,36 +9,41 @@ class MessageLib
|
||||
{
|
||||
const MSG_INDX_PREFIX = 'message_';
|
||||
|
||||
private $_ci;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Get code igniter instance
|
||||
$this->ci =& get_instance();
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
// Loads message configuration
|
||||
$this->ci->config->load('message');
|
||||
$this->_ci->config->load('message');
|
||||
|
||||
// CI Parser library
|
||||
$this->ci->load->library('parser');
|
||||
$this->_ci->load->library('parser');
|
||||
// Loads LogLib
|
||||
$this->ci->load->library('LogLib');
|
||||
$this->_ci->load->library('LogLib');
|
||||
// Loads VorlageLib
|
||||
$this->ci->load->library('VorlageLib');
|
||||
$this->_ci->load->library('VorlageLib');
|
||||
// Loads Mail library
|
||||
$this->ci->load->library('MailLib');
|
||||
$this->_ci->load->library('MailLib');
|
||||
|
||||
// Loading models
|
||||
$this->ci->load->model('system/Message_model', 'MessageModel');
|
||||
$this->ci->load->model('system/MsgStatus_model', 'MsgStatusModel');
|
||||
$this->ci->load->model('system/Recipient_model', 'RecipientModel');
|
||||
$this->ci->load->model('system/Attachment_model', 'AttachmentModel');
|
||||
$this->_ci->load->model('system/Message_model', 'MessageModel');
|
||||
$this->_ci->load->model('system/MsgStatus_model', 'MsgStatusModel');
|
||||
$this->_ci->load->model('system/Recipient_model', 'RecipientModel');
|
||||
$this->_ci->load->model('system/Attachment_model', 'AttachmentModel');
|
||||
|
||||
// Loads phrases
|
||||
$this->ci->lang->load('message');
|
||||
$this->_ci->lang->load('message');
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* getMessage() - returns the specified received message for a specified person
|
||||
*/
|
||||
@@ -49,9 +54,7 @@ class MessageLib
|
||||
if (!is_numeric($person_id))
|
||||
return $this->_error('', MSG_ERR_INVALID_RECIPIENTS);
|
||||
|
||||
$msg = $this->ci->RecipientModel->getMessage($msg_id, $person_id);
|
||||
|
||||
return $msg;
|
||||
return $this->_ci->RecipientModel->getMessage($msg_id, $person_id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -62,9 +65,7 @@ class MessageLib
|
||||
if (isEmptyString($uid))
|
||||
return $this->_error('', MSG_ERR_INVALID_MSG_ID);
|
||||
|
||||
$msg = $this->ci->RecipientModel->getMessagesByUID($uid, $oe_kurzbz, $all);
|
||||
|
||||
return $msg;
|
||||
return $this->_ci->RecipientModel->getMessagesByUID($uid, $oe_kurzbz, $all);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -75,9 +76,7 @@ class MessageLib
|
||||
if (!is_numeric($person_id))
|
||||
return $this->_error('', MSG_ERR_INVALID_MSG_ID);
|
||||
|
||||
$msg = $this->ci->RecipientModel->getMessagesByPerson($person_id, $oe_kurzbz, $all);
|
||||
|
||||
return $msg;
|
||||
return $this->_ci->RecipientModel->getMessagesByPerson($person_id, $oe_kurzbz, $all);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -88,9 +87,7 @@ class MessageLib
|
||||
if (!is_numeric($person_id))
|
||||
return $this->_error('', MSG_ERR_INVALID_MSG_ID);
|
||||
|
||||
$msg = $this->ci->MessageModel->getMessagesByPerson($person_id, $oe_kurzbz, $all);
|
||||
|
||||
return $msg;
|
||||
return $this->_ci->MessageModel->getMessagesByPerson($person_id, $oe_kurzbz, $all);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -101,7 +98,7 @@ class MessageLib
|
||||
if (isEmptyString($token))
|
||||
return $this->_error('', MSG_ERR_INVALID_TOKEN);
|
||||
|
||||
$result = $this->ci->RecipientModel->getMessageByToken($token);
|
||||
$result = $this->_ci->RecipientModel->getMessageByToken($token);
|
||||
if (hasData($result))
|
||||
{
|
||||
// Searches for a status that is different from unread
|
||||
@@ -124,7 +121,7 @@ class MessageLib
|
||||
'status' => MSG_STATUS_READ
|
||||
);
|
||||
|
||||
$resultIns = $this->ci->MsgStatusModel->insert($statusKey);
|
||||
$resultIns = $this->_ci->MsgStatusModel->insert($statusKey);
|
||||
// If an error occured while writing on data base, then return it
|
||||
if (isError($resultIns))
|
||||
{
|
||||
@@ -144,9 +141,7 @@ class MessageLib
|
||||
if (!is_numeric($person_id))
|
||||
return $this->_error('', MSG_ERR_INVALID_RECIPIENTS);
|
||||
|
||||
$msg = $this->ci->RecipientModel->getCountUnreadMessages($person_id, $oe_kurzbz);
|
||||
|
||||
return $msg;
|
||||
return $this->_ci->RecipientModel->getCountUnreadMessages($person_id, $oe_kurzbz);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -172,7 +167,7 @@ class MessageLib
|
||||
}
|
||||
|
||||
// Searches if the status is already present
|
||||
$result = $this->ci->MsgStatusModel->load(array($message_id, $person_id, $status));
|
||||
$result = $this->_ci->MsgStatusModel->load(array($message_id, $person_id, $status));
|
||||
if (hasData($result))
|
||||
{
|
||||
// status already present
|
||||
@@ -186,7 +181,7 @@ class MessageLib
|
||||
'status' => $status
|
||||
);
|
||||
|
||||
$result = $this->ci->MsgStatusModel->insert($statusKey);
|
||||
$result = $this->_ci->MsgStatusModel->insert($statusKey);
|
||||
}
|
||||
|
||||
return $result;
|
||||
@@ -199,7 +194,7 @@ class MessageLib
|
||||
{
|
||||
if (!is_numeric($sender_id))
|
||||
{
|
||||
$sender_id = $this->ci->config->item('system_person_id');
|
||||
$sender_id = $this->_ci->config->item('system_person_id');
|
||||
}
|
||||
|
||||
$receivers = $this->_getReceivers($receiver_id, $oe_kurzbz);
|
||||
@@ -230,7 +225,7 @@ class MessageLib
|
||||
if (isSuccess($result))
|
||||
{
|
||||
// If the system is configured to send messages immediately
|
||||
if ($this->ci->config->item('send_immediately') === true)
|
||||
if ($this->_ci->config->item('send_immediately') === true)
|
||||
{
|
||||
// Send message by email!
|
||||
$resultSendEmail = $this->sendOne($result->retval, $subject, $body, $multiPartMime);
|
||||
@@ -274,7 +269,7 @@ class MessageLib
|
||||
{
|
||||
if (!is_numeric($sender_id))
|
||||
{
|
||||
$sender_id = $this->ci->config->item('system_person_id');
|
||||
$sender_id = $this->_ci->config->item('system_person_id');
|
||||
}
|
||||
|
||||
$receivers = $this->_getReceivers($receiver_id, $oe_kurzbz);
|
||||
@@ -290,7 +285,7 @@ class MessageLib
|
||||
else
|
||||
{
|
||||
// Load reveiver data to get its relative language
|
||||
$this->ci->load->model('person/Person_model', 'PersonModel');
|
||||
$this->_ci->load->model('person/Person_model', 'PersonModel');
|
||||
}
|
||||
|
||||
// Looping on receivers
|
||||
@@ -299,14 +294,14 @@ class MessageLib
|
||||
$receiver_id = $receivers->retval[$i]->person_id;
|
||||
|
||||
// Checks if the receiver exists
|
||||
$result = $this->ci->PersonModel->load($receiver_id);
|
||||
$result = $this->_ci->PersonModel->load($receiver_id);
|
||||
if (hasData($result))
|
||||
{
|
||||
// Retrives the language of the logged user
|
||||
$sprache = getUserLanguage();
|
||||
|
||||
// Loads template data
|
||||
$result = $this->ci->vorlagelib->loadVorlagetext($vorlage_kurzbz, $oe_kurzbz, $orgform_kurzbz, $sprache);
|
||||
$result = $this->_ci->vorlagelib->loadVorlagetext($vorlage_kurzbz, $oe_kurzbz, $orgform_kurzbz, $sprache);
|
||||
if (isSuccess($result))
|
||||
{
|
||||
// If the text and the subject of the template are not empty
|
||||
@@ -314,9 +309,9 @@ class MessageLib
|
||||
!isEmptyString($result->retval[0]->text) && !isEmptyString($result->retval[0]->subject))
|
||||
{
|
||||
// Parses template text
|
||||
$parsedText = $this->ci->vorlagelib->parseVorlagetext($result->retval[0]->text, $data);
|
||||
$parsedText = $this->_ci->vorlagelib->parseVorlagetext($result->retval[0]->text, $data);
|
||||
// Parses subject
|
||||
$subject = $this->ci->vorlagelib->parseVorlagetext($result->retval[0]->subject, $data);
|
||||
$subject = $this->_ci->vorlagelib->parseVorlagetext($result->retval[0]->subject, $data);
|
||||
|
||||
// Save message
|
||||
$result = $this->_saveMessage($sender_id, $receiver_id, $subject, $parsedText, $relationmessage_id, $oe_kurzbz);
|
||||
@@ -324,7 +319,7 @@ class MessageLib
|
||||
if (isSuccess($result))
|
||||
{
|
||||
// If the system is configured to send messages immediately
|
||||
if ($this->ci->config->item('send_immediately') === true)
|
||||
if ($this->_ci->config->item('send_immediately') === true)
|
||||
{
|
||||
// Send message by email!
|
||||
$resultSendEmail = $this->sendOne($result->retval, $subject, $parsedText, $multiPartMime);
|
||||
@@ -389,21 +384,21 @@ class MessageLib
|
||||
$sent = true; // optimistic expectation
|
||||
|
||||
// Gets standard configs
|
||||
$cfg = $this->ci->maillib->getConfigs();
|
||||
$cfg = $this->_ci->maillib->getConfigs();
|
||||
$cfg->email_number_to_sent = $numberToSent;
|
||||
$cfg->email_number_per_time_range = $numberPerTimeRange;
|
||||
$cfg->email_time_range = $email_time_range;
|
||||
$cfg->email_from_system = $email_from_system;
|
||||
|
||||
// Overrides configs with the parameters
|
||||
$this->ci->maillib->overrideConfigs($cfg);
|
||||
$this->_ci->maillib->overrideConfigs($cfg);
|
||||
|
||||
// Gets a number ($this->ci->maillib->getMaxEmailToSent()) of unsent messages from DB
|
||||
// Gets a number ($this->_ci->maillib->getMaxEmailToSent()) of unsent messages from DB
|
||||
// having EMAIL_KONTAKT_TYPE as relative contact type
|
||||
$result = $this->ci->RecipientModel->getMessages(
|
||||
$result = $this->_ci->RecipientModel->getMessages(
|
||||
EMAIL_KONTAKT_TYPE,
|
||||
null,
|
||||
$this->ci->maillib->getConfigs()->email_number_to_sent
|
||||
$this->_ci->maillib->getConfigs()->email_number_to_sent
|
||||
);
|
||||
// Checks if errors were occurred
|
||||
if (isSuccess($result))
|
||||
@@ -418,14 +413,14 @@ class MessageLib
|
||||
if ((!is_null($result->retval[$i]->receiver) && $result->retval[$i]->receiver != '')
|
||||
|| (!is_null($result->retval[$i]->employeecontact) && $result->retval[$i]->employeecontact != ''))
|
||||
{
|
||||
$href = $this->ci->config->item('message_server').$this->ci->config->item('message_html_view_url').$result->retval[$i]->token;
|
||||
$href = $this->_ci->config->item('message_server').$this->_ci->config->item('message_html_view_url').$result->retval[$i]->token;
|
||||
|
||||
$vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailHTML');
|
||||
$vorlage = $this->_ci->vorlagelib->loadVorlagetext('MessageMailHTML');
|
||||
|
||||
if(hasData($vorlage))
|
||||
{
|
||||
// Using a template for the html email body
|
||||
$body = $this->ci->parser->parse_string(
|
||||
$body = $this->_ci->parser->parse_string(
|
||||
$vorlage->retval[0]->text,
|
||||
array(
|
||||
'href' => $href,
|
||||
@@ -438,7 +433,7 @@ class MessageLib
|
||||
else
|
||||
{
|
||||
// Using a template for the html email body
|
||||
$body = $this->ci->parser->parse(
|
||||
$body = $this->_ci->parser->parse(
|
||||
'templates/mailHTML',
|
||||
array(
|
||||
'href' => $href,
|
||||
@@ -450,14 +445,14 @@ class MessageLib
|
||||
}
|
||||
if (is_null($body) || $body == '')
|
||||
{
|
||||
$this->ci->loglib->logError('Error while parsing the mail template');
|
||||
$this->_ci->loglib->logError('Error while parsing the mail template');
|
||||
}
|
||||
|
||||
$vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailTXT');
|
||||
$vorlage = $this->_ci->vorlagelib->loadVorlagetext('MessageMailTXT');
|
||||
if(hasData($vorlage))
|
||||
{
|
||||
// Using a template for the plain text email body
|
||||
$altBody = $this->ci->parser->parse_string(
|
||||
$altBody = $this->_ci->parser->parse_string(
|
||||
$vorlage->retval[0]->text,
|
||||
array(
|
||||
'href' => $href,
|
||||
@@ -470,7 +465,7 @@ class MessageLib
|
||||
else
|
||||
{
|
||||
// Using a template for the plain text email body
|
||||
$altBody = $this->ci->parser->parse(
|
||||
$altBody = $this->_ci->parser->parse(
|
||||
'templates/mailTXT',
|
||||
array(
|
||||
'href' => $href,
|
||||
@@ -482,7 +477,7 @@ class MessageLib
|
||||
}
|
||||
if (is_null($altBody) || $altBody == '')
|
||||
{
|
||||
$this->ci->loglib->logError('Error while parsing the mail template');
|
||||
$this->_ci->loglib->logError('Error while parsing the mail template');
|
||||
}
|
||||
|
||||
// If the sender is not an employee, then system-sender is used if empty
|
||||
@@ -499,7 +494,7 @@ class MessageLib
|
||||
}
|
||||
|
||||
// Sending email
|
||||
$sent = $this->ci->maillib->send(
|
||||
$sent = $this->_ci->maillib->send(
|
||||
$sender,
|
||||
$receiverContact,
|
||||
$result->retval[$i]->subject,
|
||||
@@ -512,7 +507,7 @@ class MessageLib
|
||||
// If errors were occurred while sending the email
|
||||
if (!$sent)
|
||||
{
|
||||
$this->ci->loglib->logError('Error while sending an email');
|
||||
$this->_ci->loglib->logError('Error while sending an email');
|
||||
// Writing errors in tbl_msg_recipient
|
||||
$sme = $this->setMessageError(
|
||||
$result->retval[$i]->message_id,
|
||||
@@ -522,7 +517,7 @@ class MessageLib
|
||||
);
|
||||
if (!$sme)
|
||||
{
|
||||
$this->ci->loglib->logError('Error while updating DB');
|
||||
$this->_ci->loglib->logError('Error while updating DB');
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -532,13 +527,13 @@ class MessageLib
|
||||
// If some errors occurred
|
||||
if (!$sent)
|
||||
{
|
||||
$this->ci->loglib->logError('Error while updating DB');
|
||||
$this->_ci->loglib->logError('Error while updating DB');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ci->loglib->logError('This person does not have an email account');
|
||||
$this->_ci->loglib->logError('This person does not have an email account');
|
||||
// Writing errors in tbl_msg_recipient
|
||||
$sme = $this->setMessageError(
|
||||
$result->retval[$i]->message_id,
|
||||
@@ -548,7 +543,7 @@ class MessageLib
|
||||
);
|
||||
if (!$sme)
|
||||
{
|
||||
$this->ci->loglib->logError('Error while updating DB');
|
||||
$this->_ci->loglib->logError('Error while updating DB');
|
||||
}
|
||||
$sent = true; // Non blocking error
|
||||
}
|
||||
@@ -556,13 +551,13 @@ class MessageLib
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ci->loglib->logInfo('There are no email to be sent');
|
||||
$this->_ci->loglib->logInfo('There are no email to be sent');
|
||||
$sent = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ci->loglib->logError('Something went wrong while getting data from DB');
|
||||
$this->_ci->loglib->logError('Something went wrong while getting data from DB');
|
||||
$sent = false;
|
||||
}
|
||||
|
||||
@@ -577,7 +572,7 @@ class MessageLib
|
||||
$sent = true; // optimistic expectation
|
||||
|
||||
// Get a specific message from DB having EMAIL_KONTAKT_TYPE as relative contact type
|
||||
$result = $this->ci->RecipientModel->getMessages(
|
||||
$result = $this->_ci->RecipientModel->getMessages(
|
||||
EMAIL_KONTAKT_TYPE,
|
||||
null,
|
||||
null,
|
||||
@@ -598,12 +593,12 @@ class MessageLib
|
||||
if ($multiPartMime === true)
|
||||
{
|
||||
// Using a template for the html email body
|
||||
$href = $this->ci->config->item('message_server').$this->ci->config->item('message_html_view_url').$result->retval[0]->token;
|
||||
$href = $this->_ci->config->item('message_server').$this->_ci->config->item('message_html_view_url').$result->retval[0]->token;
|
||||
|
||||
$vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailHTML');
|
||||
$vorlage = $this->_ci->vorlagelib->loadVorlagetext('MessageMailHTML');
|
||||
if(hasData($vorlage))
|
||||
{
|
||||
$bodyMsg = $this->ci->parser->parse_string(
|
||||
$bodyMsg = $this->_ci->parser->parse_string(
|
||||
$vorlage->retval[0]->text,
|
||||
array(
|
||||
'href' => $href,
|
||||
@@ -615,7 +610,7 @@ class MessageLib
|
||||
}
|
||||
else
|
||||
{
|
||||
$bodyMsg = $this->ci->parser->parse(
|
||||
$bodyMsg = $this->_ci->parser->parse(
|
||||
'templates/mailHTML',
|
||||
array(
|
||||
'href' => $href,
|
||||
@@ -628,14 +623,14 @@ class MessageLib
|
||||
if (is_null($bodyMsg) || $bodyMsg == '')
|
||||
{
|
||||
// $body = $result->retval[0]->body;
|
||||
$this->ci->loglib->logError('Error while parsing the html mail template');
|
||||
$this->_ci->loglib->logError('Error while parsing the html mail template');
|
||||
}
|
||||
|
||||
// Using a template for the plain text email body
|
||||
$vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailTXT');
|
||||
$vorlage = $this->_ci->vorlagelib->loadVorlagetext('MessageMailTXT');
|
||||
if(hasData($vorlage))
|
||||
{
|
||||
$altBody = $this->ci->parser->parse_string(
|
||||
$altBody = $this->_ci->parser->parse_string(
|
||||
$vorlage->retval[0]->text,
|
||||
array(
|
||||
'href' => $href,
|
||||
@@ -647,7 +642,7 @@ class MessageLib
|
||||
}
|
||||
else
|
||||
{
|
||||
$altBody = $this->ci->parser->parse(
|
||||
$altBody = $this->_ci->parser->parse(
|
||||
'templates/mailTXT',
|
||||
array(
|
||||
'href' => $href,
|
||||
@@ -659,7 +654,7 @@ class MessageLib
|
||||
}
|
||||
if (is_null($altBody) || $altBody == '')
|
||||
{
|
||||
$this->ci->loglib->logError('Error while parsing the plain text mail template');
|
||||
$this->_ci->loglib->logError('Error while parsing the plain text mail template');
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -681,7 +676,7 @@ class MessageLib
|
||||
}
|
||||
|
||||
// Sending email
|
||||
$sent = $this->ci->maillib->send(
|
||||
$sent = $this->_ci->maillib->send(
|
||||
null,
|
||||
$receiverContact,
|
||||
is_null($subject) ? $result->retval[0]->subject : $subject, // if parameter subject is not null, use it!
|
||||
@@ -694,7 +689,7 @@ class MessageLib
|
||||
// If errors were occurred while sending the email
|
||||
if (!$sent)
|
||||
{
|
||||
$this->ci->loglib->logError('Error while sending an email');
|
||||
$this->_ci->loglib->logError('Error while sending an email');
|
||||
// Writing errors in tbl_msg_recipient
|
||||
$sme = $this->setMessageError(
|
||||
$result->retval[0]->message_id,
|
||||
@@ -704,7 +699,7 @@ class MessageLib
|
||||
);
|
||||
if (!$sme)
|
||||
{
|
||||
$this->ci->loglib->logError('Error while updating DB');
|
||||
$this->_ci->loglib->logError('Error while updating DB');
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -714,13 +709,13 @@ class MessageLib
|
||||
// If the email has been sent and the DB updated
|
||||
if (!$sent)
|
||||
{
|
||||
$this->ci->loglib->logError('Error while updating DB');
|
||||
$this->_ci->loglib->logError('Error while updating DB');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ci->loglib->logError('This person does not have an email account');
|
||||
$this->_ci->loglib->logError('This person does not have an email account');
|
||||
// Writing errors in tbl_msg_recipient
|
||||
$sme = $this->setMessageError(
|
||||
$result->retval[0]->message_id,
|
||||
@@ -730,27 +725,100 @@ class MessageLib
|
||||
);
|
||||
if (!$sme)
|
||||
{
|
||||
$this->ci->loglib->logError('Error while updating DB');
|
||||
$this->_ci->loglib->logError('Error while updating DB');
|
||||
}
|
||||
$sent = true; // Non blocking error
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ci->loglib->logInfo('There are no email to be sent');
|
||||
$this->_ci->loglib->logInfo('There are no email to be sent');
|
||||
$sent = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ci->loglib->logError('Something went wrong while getting data from DB');
|
||||
$this->_ci->loglib->logError('Something went wrong while getting data from DB');
|
||||
$sent = false;
|
||||
}
|
||||
|
||||
return $sent;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
/**
|
||||
* parseMessageText
|
||||
*/
|
||||
public function parseMessageText($text, $data = array())
|
||||
{
|
||||
return $this->_ci->parser->parse_string($text, $data, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets data for Person from view vw_msg_vars_person
|
||||
* @param $person_id
|
||||
*/
|
||||
public function getMessageVarsPerson()
|
||||
{
|
||||
$variablesArray = array();
|
||||
$variables = $this->_ci->MessageModel->getMessageVarsPerson();
|
||||
|
||||
if (isError($variables))
|
||||
{
|
||||
show_error($variables->retval);
|
||||
}
|
||||
elseif (hasData($variables))
|
||||
{
|
||||
// Skip person_id
|
||||
for ($i = 1; $i < count($variables->retval); $i++)
|
||||
{
|
||||
$variablesArray['{'.str_replace(' ', '_', strtolower($variables->retval[$i])).'}'] = $variables->retval[$i];
|
||||
}
|
||||
array_shift($variables->retval); // Remove person_id
|
||||
}
|
||||
|
||||
return $variablesArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* A person may belongs to more organisation units
|
||||
*/
|
||||
public function getOeKurzbz($sender_id)
|
||||
{
|
||||
$oe_kurzbz = array();
|
||||
|
||||
$this->_ci->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
|
||||
$benutzerResult = $this->_ci->BenutzerfunktionModel->getByPersonId($sender_id);
|
||||
if (isError($benutzerResult))
|
||||
{
|
||||
show_error($benutzerResult->retval);
|
||||
}
|
||||
elseif (hasData($benutzerResult))
|
||||
{
|
||||
foreach ($benutzerResult->retval as $val)
|
||||
{
|
||||
$oe_kurzbz[] = $val->oe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
return $oe_kurzbz;
|
||||
}
|
||||
|
||||
/**
|
||||
* Admin or commoner?
|
||||
*/
|
||||
public function getIsAdmin($sender_id)
|
||||
{
|
||||
$this->_ci->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel');
|
||||
$isAdmin = $this->_ci->BenutzerrolleModel->isAdminByPersonId($sender_id);
|
||||
if (isError($isAdmin))
|
||||
{
|
||||
show_error($isAdmin->retval);
|
||||
}
|
||||
|
||||
return $isAdmin->retval;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
@@ -761,7 +829,7 @@ class MessageLib
|
||||
$updated = false;
|
||||
|
||||
// Updates table tbl_msg_recipient
|
||||
$resultUpdate = $this->ci->RecipientModel->update(array($receiver_id, $message_id), $parameters);
|
||||
$resultUpdate = $this->_ci->RecipientModel->update(array($receiver_id, $message_id), $parameters);
|
||||
// Checks if errors were occurred
|
||||
if (isSuccess($resultUpdate) && is_array($resultUpdate->retval))
|
||||
{
|
||||
@@ -802,13 +870,13 @@ class MessageLib
|
||||
private function _getReceiversByOekurzbz($oe_kurzbz)
|
||||
{
|
||||
// Load Benutzerfunktion_model
|
||||
$this->ci->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
|
||||
$this->_ci->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
|
||||
// Join with table public.tbl_benutzer on field uid
|
||||
$this->ci->BenutzerfunktionModel->addJoin('public.tbl_benutzer', 'uid');
|
||||
$this->_ci->BenutzerfunktionModel->addJoin('public.tbl_benutzer', 'uid');
|
||||
// Get all the valid receivers id using the oe_kurzbz
|
||||
$receivers = $this->ci->BenutzerfunktionModel->loadWhere(
|
||||
'oe_kurzbz = '.$this->ci->db->escape($oe_kurzbz).
|
||||
' AND funktion_kurzbz = '.$this->ci->db->escape($this->ci->config->item('assistent_function')).
|
||||
$receivers = $this->_ci->BenutzerfunktionModel->loadWhere(
|
||||
'oe_kurzbz = '.$this->_ci->db->escape($oe_kurzbz).
|
||||
' AND funktion_kurzbz = '.$this->_ci->db->escape($this->_ci->config->item('assistent_function')).
|
||||
' AND (NOW() BETWEEN COALESCE(datum_von, NOW()) AND COALESCE(datum_bis, NOW()))'
|
||||
);
|
||||
|
||||
@@ -851,8 +919,8 @@ class MessageLib
|
||||
private function _checkReceiverId($receiver_id)
|
||||
{
|
||||
// Load Person_model
|
||||
$this->ci->load->model('person/Person_model', 'PersonModel');
|
||||
$result = $this->ci->PersonModel->load($receiver_id);
|
||||
$this->_ci->load->model('person/Person_model', 'PersonModel');
|
||||
$result = $this->_ci->PersonModel->load($receiver_id);
|
||||
if (hasData($result))
|
||||
{
|
||||
return true;
|
||||
@@ -867,7 +935,7 @@ class MessageLib
|
||||
private function _saveMessage($sender_id, $receiver_id, $subject, $body, $relationmessage_id, $oe_kurzbz)
|
||||
{
|
||||
// Starts db transaction
|
||||
$this->ci->db->trans_start(false);
|
||||
$this->_ci->db->trans_start(false);
|
||||
|
||||
// Save Message
|
||||
$msgData = array(
|
||||
@@ -878,7 +946,7 @@ class MessageLib
|
||||
'relationmessage_id' => $relationmessage_id,
|
||||
'oe_kurzbz' => $oe_kurzbz
|
||||
);
|
||||
$result = $this->ci->MessageModel->insert($msgData);
|
||||
$result = $this->_ci->MessageModel->insert($msgData);
|
||||
if (isSuccess($result))
|
||||
{
|
||||
// Link the message with the receiver
|
||||
@@ -888,7 +956,7 @@ class MessageLib
|
||||
'message_id' => $msg_id,
|
||||
'token' => generateToken()
|
||||
);
|
||||
$result = $this->ci->RecipientModel->insert($recipientData);
|
||||
$result = $this->_ci->RecipientModel->insert($recipientData);
|
||||
if (isSuccess($result))
|
||||
{
|
||||
// Save message status
|
||||
@@ -897,20 +965,20 @@ class MessageLib
|
||||
'person_id' => $receiver_id,
|
||||
'status' => MSG_STATUS_UNREAD
|
||||
);
|
||||
$result = $this->ci->MsgStatusModel->insert($statusData);
|
||||
$result = $this->_ci->MsgStatusModel->insert($statusData);
|
||||
}
|
||||
}
|
||||
|
||||
$this->ci->db->trans_complete();
|
||||
$this->_ci->db->trans_complete();
|
||||
|
||||
if ($this->ci->db->trans_status() === false || isError($result))
|
||||
if ($this->_ci->db->trans_status() === false || isError($result))
|
||||
{
|
||||
$this->ci->db->trans_rollback();
|
||||
$this->_ci->db->trans_rollback();
|
||||
$result = $this->_error($result->msg, EXIT_ERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ci->db->trans_commit();
|
||||
$this->_ci->db->trans_commit();
|
||||
$result = $this->_success($msg_id);
|
||||
}
|
||||
|
||||
@@ -932,12 +1000,4 @@ class MessageLib
|
||||
{
|
||||
return success($retval, $code, MessageLib::MSG_INDX_PREFIX);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function parseMessageText($text, $data = array())
|
||||
{
|
||||
return $this->ci->parser->parse_string($text, $data, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
if (! defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
class StudienplanLib
|
||||
{
|
||||
/**
|
||||
* Loads model OrganisationseinheitModel
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->ci =& get_instance();
|
||||
|
||||
// Loads model Organisationseinheit_model
|
||||
$this->ci->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
||||
}
|
||||
|
||||
public function getLehrveranstaltungTree($studienplan_id, $semester, $studplan = null)
|
||||
{
|
||||
$tree = array();
|
||||
$data = $this->ci->StudienplanModel->getStudienplanLehrveranstaltung($studienplan_id, $semester);
|
||||
if(isSuccess($data) && hasData($data))
|
||||
{
|
||||
$this->lehrveranstaltungen = $data->retval;
|
||||
foreach($this->lehrveranstaltungen as $row)
|
||||
{
|
||||
if (!is_null($studplan) && $row->export != $studplan)
|
||||
continue;
|
||||
|
||||
if (is_null($row->studienplan_lehrveranstaltung_id_parent))
|
||||
{
|
||||
$treeitem = array(
|
||||
'lehrveranstaltung_id' => $row->lehrveranstaltung_id,
|
||||
'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz,
|
||||
'pflicht' => $row->pflicht,
|
||||
'bezeichnung' => $row->bezeichnung,
|
||||
'ects' => $row->ects
|
||||
);
|
||||
$childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id);
|
||||
if(is_array($childs) && count($childs) > 0)
|
||||
$treeitem['childs'] = $childs;
|
||||
$tree[] = $treeitem;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $tree;
|
||||
}
|
||||
|
||||
private function getChildElements($studienplan_lehrveranstaltung_id)
|
||||
{
|
||||
$subtree = array();
|
||||
|
||||
foreach($this->lehrveranstaltungen as $row)
|
||||
{
|
||||
if($studienplan_lehrveranstaltung_id == $row->studienplan_lehrveranstaltung_id_parent)
|
||||
{
|
||||
$treeitem = array(
|
||||
'lehrveranstaltung_id' => $row->lehrveranstaltung_id,
|
||||
'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz,
|
||||
'pflicht' => $row->pflicht,
|
||||
'bezeichnung' => $row->bezeichnung,
|
||||
'ects' => $row->ects
|
||||
);
|
||||
$childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id);
|
||||
if(is_array($childs))
|
||||
$treeitem['childs'] = $childs;
|
||||
$subtree[] = $treeitem;
|
||||
}
|
||||
}
|
||||
return $subtree;
|
||||
}
|
||||
}
|
||||
@@ -13,12 +13,12 @@ class Kostenstelle_model extends DB_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields
|
||||
* Gets Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields
|
||||
* Gets Kostenstellen of current Geschaeftsjahr if Geschaeftsjahr not specified
|
||||
* @param $geschaeftsjahr
|
||||
* @return array|null Kostenstellen or empty array if no geschaeftsjahr found
|
||||
*/
|
||||
public function getActiveKostenstellenForGeschaeftsjahr($geschaeftsjahr = null)
|
||||
public function getKostenstellenForGeschaeftsjahr($geschaeftsjahr = null)
|
||||
{
|
||||
$this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel');
|
||||
|
||||
@@ -47,12 +47,12 @@ class Kostenstelle_model extends DB_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields, together with their oe,
|
||||
* Gets Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields, together with their oe,
|
||||
* hierarchally sorted, gets Kostenstellen of current Geschaeftsjahr if Geschaeftsjahr not specified
|
||||
* @param null $geschaeftsjahr
|
||||
* @return array|null
|
||||
*/
|
||||
public function getActiveKostenstellenForGeschaeftsjahrWithOe($geschaeftsjahr = null)
|
||||
public function getKostenstellenForGegitschaeftsjahrWithOe($geschaeftsjahr = null)
|
||||
{
|
||||
$this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel');
|
||||
|
||||
|
||||
@@ -14,13 +14,13 @@ class Student_model extends DB_Model
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Generiert die Matrikelnummer
|
||||
// * FORMAT: 0710254001
|
||||
// * 07 = Jahr
|
||||
// * 1/2/0 = WS/SS/incoming
|
||||
// * 0254 = Studiengangskennzahl vierstellig
|
||||
// * 001 = Laufende Nummer
|
||||
// ****
|
||||
// * Generiert die Matrikelnummer
|
||||
// * FORMAT: 0710254001
|
||||
// * 07 = Jahr
|
||||
// * 1/2/0 = WS/SS/incoming
|
||||
// * 0254 = Studiengangskennzahl vierstellig
|
||||
// * 001 = Laufende Nummer
|
||||
// ****
|
||||
public function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
|
||||
{
|
||||
$jahr = mb_substr($studiensemester_kurzbz, 4);
|
||||
|
||||
@@ -11,35 +11,46 @@ class Studienplan_model extends DB_Model
|
||||
$this->dbTable = "lehre.tbl_studienplan";
|
||||
$this->pk = "studienplan_id";
|
||||
}
|
||||
|
||||
|
||||
public function getStudienplaene($studiengang_kz)
|
||||
{
|
||||
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
|
||||
|
||||
|
||||
return $this->loadWhere(array("studiengang_kz" => $studiengang_kz));
|
||||
}
|
||||
|
||||
|
||||
public function getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester = null, $orgform_kurzbz = null)
|
||||
{
|
||||
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
|
||||
$this->addJoin("lehre.tbl_studienplan_semester", "studienplan_id");
|
||||
|
||||
|
||||
$whereArray = array(
|
||||
"tbl_studienplan.aktiv" => "TRUE",
|
||||
"tbl_studienordnung.studiengang_kz" => $studiengang_kz,
|
||||
"tbl_studienplan_semester.studiensemester_kurzbz" => $studiensemester_kurzbz
|
||||
);
|
||||
|
||||
|
||||
if(!is_null($ausbildungssemester))
|
||||
{
|
||||
$whereArray["tbl_studienplan_semester.semester"] = $ausbildungssemester;
|
||||
}
|
||||
|
||||
|
||||
if(!is_null($orgform_kurzbz))
|
||||
{
|
||||
$whereArray["orgform_kurzbz"] = $orgform_kurzbz;
|
||||
}
|
||||
|
||||
|
||||
return $this->StudienplanModel->loadWhere($whereArray);
|
||||
}
|
||||
}
|
||||
|
||||
public function getStudienplanLehrveranstaltung($studienplan_id, $semester)
|
||||
{
|
||||
$this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id');
|
||||
$this->addJoin('lehre.tbl_lehrveranstaltung', 'lehrveranstaltung_id');
|
||||
$this->addOrder('tbl_lehrveranstaltung.sort');
|
||||
return $this->loadWhere(array(
|
||||
'studienplan_id' => $studienplan_id,
|
||||
'tbl_studienplan_lehrveranstaltung.semester' => $semester
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
if(isset($course['note']) && isset($grades[$course['note']]))
|
||||
$gradeclass = ($grades[$course['note']]['positiv']?'gradelist_row_grade_positiv':'gradelist_row_grade_negativ');
|
||||
else
|
||||
$gradeclass = '';
|
||||
?>
|
||||
<tr class="gradelist_row_<?php echo $course['lehrtyp_kurzbz']; ?> gradelist_row_depth_<?php echo $depth; ?>">
|
||||
<td><?php echo $course['bezeichnung']; ?></td>
|
||||
<td align="right"><?php echo (isset($course['ects'])?$course['ects']:''); ?></td>
|
||||
<td class="<?php echo $gradeclass; ?>">
|
||||
<?php
|
||||
if (isset($course['note']) && isset($grades[$course['note']]['anmerkung']))
|
||||
echo $grades[$course['note']]['anmerkung'];
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Gradelist',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'ajaxlib' => true,
|
||||
'customCSSs' => array(
|
||||
'public/css/tools/gradelist.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js'
|
||||
)
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
<?php echo ucfirst($this->p->t('global', 'uebersicht')); ?> -
|
||||
<?php echo $person->vorname.' '.$person->nachname.' ('.$user.')';?>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<b><?php echo $this->p->t('lehre', 'notendurchschnitt'); ?>:</b>
|
||||
<?php echo $courses['overall']['notendurchschnitt'] ?><br>
|
||||
<b><?php echo $this->p->t('lehre', 'gewichteternotendurchschnitt'); ?>:</b>
|
||||
<?php echo $courses['overall']['notendurchschnittgewichtet'] ?><br>
|
||||
<b><?php echo $this->p->t('lehre', 'ects'); ?>:</b>
|
||||
<?php echo $courses['overall']['ectssumme_positiv'] ?><br>
|
||||
<br>
|
||||
<?php
|
||||
foreach ($courses['semester'] as $sem => $row_semester)
|
||||
{
|
||||
$this->load->view('person/gradelist/semester.php', $row_semester);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
$semesterdata = $data;
|
||||
$tableid='table-semester-'.$semesterdata['studiensemester_kurzbz'];
|
||||
?>
|
||||
<div id="accordion_<?php echo $tableid;?>">
|
||||
<div class="panel-group">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" id="headingcollapse_<?php echo $tableid;?>">
|
||||
<a class="btn btn-link"
|
||||
data-toggle="collapse"
|
||||
data-target="#collapse_<?php echo $tableid;?>"
|
||||
aria-expanded="true"
|
||||
aria-controls="collapse_<?php echo $tableid;?>"
|
||||
>
|
||||
<?php
|
||||
echo $semesterdata['studiensemester_kurzbz'].' - '.
|
||||
$semesterdata['ausbildungssemester'].'. '.$this->p->t('lehre','ausbildungssemester').' - '.
|
||||
$semesterdata['status'].' | '.
|
||||
$semesterdata['ectssumme_positiv'];
|
||||
if(isset($semesterdata['ectssumme_nonstpl']))
|
||||
echo ' + '.$semesterdata['ectssumme_nonstpl'];
|
||||
echo ' '.$this->p->t('lehre','ects');
|
||||
?>
|
||||
</a>
|
||||
</div>
|
||||
<div id="collapse_<?php echo $tableid;?>"
|
||||
class="panel-collapse collapse"
|
||||
aria-labelledby="headingcollapse_<?php echo $tableid;?>"
|
||||
data-parent="#accordion_<?php echo $tableid;?>"
|
||||
>
|
||||
<div class="panel-body">
|
||||
<?php
|
||||
if (is_array($lvs) && count($lvs) > 0):
|
||||
|
||||
echo '<h4>Lehrveranstaltungen laut Studienplan '.$semesterdata['studienplan_bezeichnung'].'</h4>';
|
||||
?>
|
||||
<table id="<?php echo $tableid;?>" class="gradetable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $this->p->t('lehre','lehrveranstaltung');?></th>
|
||||
<th><?php echo $this->p->t('lehre','ects');?></th>
|
||||
<th><?php echo $this->p->t('lehre','note');?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($lvs as $row_course)
|
||||
{
|
||||
Gradelist::printRow($row_course, 0);
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th style="text-align: right">
|
||||
<?php
|
||||
echo (isset($semesterdata['ectssumme_positiv'])?$semesterdata['ectssumme_positiv']:'');
|
||||
|
||||
if (isset($semesterdata['ectssumme'])
|
||||
&& isset($semesterdata['ectssumme_positiv'])
|
||||
&& $semesterdata['ectssumme'] != $semesterdata['ectssumme_positiv'])
|
||||
{
|
||||
echo ' ('.$semesterdata['ectssumme'].')';
|
||||
}
|
||||
?>
|
||||
</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<?php
|
||||
endif;
|
||||
if (isset($lvs_nonstpl) && count($lvs_nonstpl) > 0):
|
||||
?>
|
||||
<h2><?php echo $this->p->t('lehre','nichtstudienplanrelevanteKurse'); ?></h2>
|
||||
<table id="<?php echo $tableid;?>_nonstpl" class="gradetable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $this->p->t('lehre','lehrveranstaltung');?></th>
|
||||
<th><?php echo $this->p->t('lehre','ects');?></th>
|
||||
<th><?php echo $this->p->t('lehre','note');?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
if(is_array($lvs_nonstpl))
|
||||
{
|
||||
foreach ($lvs_nonstpl as $row_course)
|
||||
{
|
||||
Gradelist::printRow($row_course, 0);
|
||||
}
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th style="text-align: right"><?php echo (isset($semesterdata['ectssumme_nonstpl'])?number_format($semesterdata['ectssumme_nonstpl'],2):''); ?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<?php
|
||||
endif;
|
||||
?>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<b><?php echo $this->p->t('lehre','notendurchschnitt');?>:</b>
|
||||
<?php echo (isset($semesterdata['notendurchschnitt'])?$semesterdata['notendurchschnitt']:'');?>
|
||||
<b><?php echo $this->p->t('lehre','gewichteternotendurchschnitt');?>:</b>
|
||||
<?php echo (isset($semesterdata['notendurchschnittgewichtet'])?$semesterdata['notendurchschnittgewichtet']:'');?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -143,7 +143,7 @@
|
||||
<div class="panel-body">
|
||||
<div class="row" id="messagelist">
|
||||
<?php
|
||||
$this->load->view('system/messageList.php', $messages);
|
||||
$this->load->view('system/messages/messageList.php', $messages);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
<?php
|
||||
$lastMailAdress = '';
|
||||
foreach ($stammdaten->kontakte as $kontakt): ?>
|
||||
<tr>
|
||||
@@ -113,12 +113,11 @@
|
||||
</table>
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<form id="sendmsgform" method="post" action="<?php echo $messagelink ?>"
|
||||
target="_blank">
|
||||
<input type="hidden" name="person_id"
|
||||
value="<?php echo $stammdaten->person_id ?>">
|
||||
<a id="sendmsglink" href="javascript:void(0);"><i
|
||||
class="fa fa-envelope"></i> <?php echo $this->p->t('ui','nachrichtSenden') ?></a>
|
||||
<form id="sendmsgform" method="post" action="<?php echo site_url('/system/Messages/write'); ?>" target="_blank">
|
||||
<input type="hidden" name="person_id" value="<?php echo $stammdaten->person_id ?>">
|
||||
<a id="sendmsglink" href="javascript:void(0);">
|
||||
<i class="fa fa-envelope"></i> <?php echo $this->p->t('ui','nachrichtSenden'); ?>
|
||||
</a>
|
||||
</form>
|
||||
</div>
|
||||
<?php if (isset($stammdaten->zugangscode)): ?>
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'MessageSent',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/messageSent.css')
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<h3 class="page-header text-right">Thank you for getting in touch!</h3>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<h3 class="page-header">Danke für die Kontaktaufnahme!</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right">
|
||||
Message sent successfully!
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
Nachricht erfolgreich versandt!
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right">
|
||||
<span class="rwd-line">
|
||||
Thank you for your message.
|
||||
</span>
|
||||
<span class="rwd-line">
|
||||
We will get back to you shortly.
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<span class="rwd-line">
|
||||
Herzlichen Dank für Ihre Nachricht.
|
||||
</span>
|
||||
<span class="rwd-line">
|
||||
Wir werden uns schnellstmöglich um Ihr Anliegen kümmern.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right" style="border-right: 1px">
|
||||
You can safely close this window.
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
Sie können dieses Fenster schließen.
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right">
|
||||
Your InfoCenter@FHTW Team
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
Ihr InfoCenter@FHTW Team
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-center">
|
||||
<p class="signatureblock">
|
||||
Fachhochschule Technikum Wien | University of Applied Sciences Technikum Wien
|
||||
<br>Hoechstaedtplatz 6, 1200 Wien, AUSTRIA
|
||||
<br><a class="signatureblocklink" href="https://www.technikum-wien.at">www.technikum-wien.at</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="panel-footer">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<button class="btn btn-default" onclick="javascript:window.close(); return false;">
|
||||
<i class="fa fa-times"></i> Close | Schließen
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
<button class="btn btn-default"><i class="glyphicon glyphicon-new-window"></i> My Application | Meine Bewerbung</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/FHC-Footer"); ?>
|
||||
@@ -1,319 +0,0 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'MessageReply',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'tinymce' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/messageWrite.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<?php
|
||||
$href = site_url().'/system/Messages/send/';
|
||||
?>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header"><?php echo ucfirst($this->p->t('ui', 'nachrichtSenden')) ?></h3>
|
||||
</div>
|
||||
</div>
|
||||
<form id="sendForm" method="post" action="<?php echo $href; ?>">
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<div class="col-lg-1 msgfieldcol-left">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'empfaenger')) . ':'?></label>
|
||||
</div>
|
||||
<div class="col-lg-11 msgfieldcol-right">
|
||||
<?php
|
||||
for ($i = 0; $i < count($receivers); $i++)
|
||||
{
|
||||
$receiver = $receivers[$i];
|
||||
// Every 10 recipients a new line
|
||||
if ($i > 1 && $i % 10 == 0)
|
||||
{
|
||||
echo '<br>';
|
||||
}
|
||||
echo $receiver->Vorname." ".$receiver->Nachname."; ";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<div class="col-lg-1 msgfield msgfieldcol-left">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'betreff')) . ':'?></label>
|
||||
</div>
|
||||
<?php
|
||||
$subject = '';
|
||||
if (isset($message))
|
||||
{
|
||||
$subject = 'Re: '.$message->subject;
|
||||
}
|
||||
?>
|
||||
<div class="col-lg-7">
|
||||
<input id="subject" class="form-control" type="text" value="<?php echo $subject; ?>"
|
||||
name="subject">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-lg-10">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'nachricht')) . ':'?></label>
|
||||
<?php
|
||||
$body = '';
|
||||
if (isset($message))
|
||||
{
|
||||
$body = $message->body;
|
||||
}
|
||||
?>
|
||||
<textarea id="bodyTextArea" name="body"><?php echo $body; ?></textarea>
|
||||
</div>
|
||||
<?php
|
||||
if (isset($variables)):
|
||||
?>
|
||||
<div class="col-lg-2">
|
||||
<div class="form-group">
|
||||
<label><?php echo ucfirst($this->p->t('ui', 'felder')) . ':'?></label>
|
||||
<select id="variables" class="form-control" size="14" multiple="multiple">
|
||||
<?php
|
||||
foreach ($variables as $key => $val)
|
||||
{
|
||||
?>
|
||||
<option value="<?php echo $key; ?>"><?php echo $val; ?></option>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Vorlage_widget',
|
||||
array('oe_kurzbz' => $oe_kurzbz, 'isAdmin' => $isAdmin),
|
||||
array('name' => 'vorlage', 'id' => 'vorlageDnD')
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="col-lg-7 col-xs-9 text-right">
|
||||
<button id="sendButton" class="btn btn-default" type="button"><?php echo $this->p->t('ui', 'senden')?></button>
|
||||
</div>
|
||||
</div>
|
||||
<?php if (isset($receivers) && count($receivers) > 0): ?>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'vorschau')) . ':'?></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="well">
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<div class="form-grop form-inline">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'empfaenger')) . ': ' ?></label>
|
||||
<select id="recipients">
|
||||
<?php
|
||||
if (count($receivers) > 1)
|
||||
echo '<option value="-1">Select...</option>';
|
||||
|
||||
$idtype = $personOnly === true ? 'person_id' : 'prestudent_id';
|
||||
foreach ($receivers as $receiver)
|
||||
{
|
||||
?>
|
||||
<option value="<?php echo $receiver->{$idtype}; ?>"><?php echo $receiver->Vorname." ".$receiver->Nachname; ?></option>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
|
||||
<strong><a href="#" id="refresh">Refresh</a></strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<textarea id="tinymcePreview"></textarea>
|
||||
</div>
|
||||
<?php
|
||||
endif;
|
||||
?>
|
||||
|
||||
<?php
|
||||
for ($i = 0; $i < count($receivers); $i++)
|
||||
{
|
||||
$receiver = $receivers[$i];
|
||||
if ($personOnly === true)
|
||||
{
|
||||
$receiverid = $receiver->person_id;
|
||||
$fieldname = 'persons[]';
|
||||
}
|
||||
else
|
||||
{
|
||||
$receiverid = $receiver->prestudent_id;
|
||||
$fieldname = 'prestudents[]';
|
||||
}
|
||||
echo '<input type="hidden" name="'.$fieldname.'" value="'.$receiverid.'">'."\n";
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
if (isset($message))
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="relationmessage_id" value="<?php echo $message->message_id; ?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
const CONTROLLER_URL = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/"+FHC_JS_DATA_STORAGE_OBJECT.called_path;
|
||||
|
||||
tinymce.init({
|
||||
selector: "#bodyTextArea",
|
||||
plugins: "autoresize",
|
||||
autoresize_min_height: 150,
|
||||
autoresize_max_height: 600,
|
||||
autoresize_bottom_margin: 10
|
||||
});
|
||||
|
||||
tinymce.init({
|
||||
menubar: false,
|
||||
toolbar: false,
|
||||
statusbar: false,
|
||||
readonly: 1,
|
||||
selector: "#tinymcePreview",
|
||||
plugins: "autoresize",
|
||||
autoresize_min_height: 150,
|
||||
autoresize_bottom_margin: 10
|
||||
});
|
||||
|
||||
$(document).ready(function ()
|
||||
{
|
||||
if ($("#variables"))
|
||||
{
|
||||
$("#variables").dblclick(function ()
|
||||
{
|
||||
if ($("#bodyTextArea"))
|
||||
{
|
||||
//if editor active add at cursor position, otherwise at end
|
||||
if (tinymce.activeEditor.id === "bodyTextArea")
|
||||
tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).children(":selected").val());
|
||||
else
|
||||
tinyMCE.get("bodyTextArea").setContent(tinyMCE.get("bodyTextArea").getContent() + $(this).children(":selected").val());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($("#recipients"))
|
||||
{
|
||||
$("#recipients").change(tinymcePreviewSetContent);
|
||||
}
|
||||
|
||||
if ($("#refresh"))
|
||||
{
|
||||
$("#refresh").click(tinymcePreviewSetContent);
|
||||
}
|
||||
|
||||
if ($("#sendButton") && $("#sendForm"))
|
||||
{
|
||||
$("#sendButton").click(function ()
|
||||
{
|
||||
if ($("#subject") && $("#subject").val() != '' && tinyMCE.get("bodyTextArea").getContent() != '')
|
||||
{
|
||||
$("#sendForm").submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Subject and text are required fields!");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($("#vorlageDnD"))
|
||||
{
|
||||
$("#vorlageDnD").change(function ()
|
||||
{
|
||||
if (this.value != '')
|
||||
{
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: CONTROLLER_URL+"/getVorlage",
|
||||
data: {"vorlage_kurzbz": this.value},
|
||||
success: function (data, textStatus, jqXHR)
|
||||
{
|
||||
tinyMCE.get("bodyTextArea").setContent(data.retval[0].text);
|
||||
$("#subject").val(data.retval[0].subject);
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown)
|
||||
{
|
||||
alert(textStatus + " - " + errorThrown);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("#subject").focus();
|
||||
|
||||
});
|
||||
|
||||
function tinymcePreviewSetContent()
|
||||
{
|
||||
if ($("#tinymcePreview"))
|
||||
{
|
||||
if ($("#recipients").children(":selected").val() > -1)
|
||||
{
|
||||
parseMessageText($("#recipients").children(":selected").val(), tinyMCE.get("bodyTextArea").getContent());
|
||||
}
|
||||
else
|
||||
{
|
||||
tinyMCE.get("tinymcePreview").setContent("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function parseMessageText(receiver_id, text)
|
||||
{
|
||||
<?php
|
||||
$idtype = $personOnly === true ? 'person_id' : 'prestudent_id';
|
||||
?>
|
||||
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: CONTROLLER_URL+"/parseMessageText",
|
||||
data: {"<?php echo $idtype ?>": receiver_id, "text": text},
|
||||
success: function (data, textStatus, jqXHR)
|
||||
{
|
||||
tinyMCE.get("tinymcePreview").setContent(data);
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown)
|
||||
{
|
||||
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/FHC-Footer"); ?>
|
||||
@@ -1,89 +0,0 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'MessageReply',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'tinymce' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/messageWrite.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<?php
|
||||
$href = site_url().'/ViewMessage/sendReply';
|
||||
?>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">Send message</h3>
|
||||
</div>
|
||||
</div>
|
||||
<form id="sendForm" method="post" action="<?php echo $href; ?>">
|
||||
<?php $this->load->view('system/messageForm.php'); ?>
|
||||
<?php
|
||||
for ($i = 0; $i < count($receivers); $i++)
|
||||
{
|
||||
$receiver = $receivers[$i];
|
||||
$receiverid = $receiver->person_id;
|
||||
$fieldname = 'persons[]';
|
||||
|
||||
echo '<input type="hidden" name="'.$fieldname.'" value="'.$receiverid.'">'."\n";
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
if (isset($message))
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="relationmessage_id" value="<?php echo $message->message_id; ?>">
|
||||
<?php
|
||||
}
|
||||
if (isset($token))
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="token" value="<?php echo $token; ?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
tinymce.init({
|
||||
selector: "#bodyTextArea",
|
||||
plugins: "autoresize",
|
||||
autoresize_min_height: 150,
|
||||
autoresize_max_height: 600,
|
||||
autoresize_bottom_margin: 10,
|
||||
auto_focus: "bodyTextArea"
|
||||
});
|
||||
|
||||
$(document).ready(function ()
|
||||
{
|
||||
if ($("#sendButton") && $("#sendForm"))
|
||||
{
|
||||
$("#sendButton").click(function ()
|
||||
{
|
||||
if ($("#subject") && $("#subject").val() != '' && tinyMCE.get("bodyTextArea").getContent() != '')
|
||||
{
|
||||
$("#sendForm").submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Subject and text are required fields!");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
<?php $this->load->view("templates/FHC-Footer"); ?>
|
||||
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'MessageSent',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/messageSent.css')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-xs-6">
|
||||
<h3 class="page-header text-right">Thank you for getting in touch!</h3>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6">
|
||||
<h3 class="page-header">Danke für die Kontaktaufnahme!</h3>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right">
|
||||
Message sent successfully!
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
Nachricht erfolgreich versandt!
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right">
|
||||
<span class="rwd-line">
|
||||
Thank you for your message.
|
||||
</span>
|
||||
<span class="rwd-line">
|
||||
We will get back to you shortly.
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<span class="rwd-line">
|
||||
Herzlichen Dank für Ihre Nachricht.
|
||||
</span>
|
||||
<span class="rwd-line">
|
||||
Wir werden uns schnellstmöglich um Ihr Anliegen kümmern.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right" style="border-right: 1px">
|
||||
You can safely close this window.
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
Sie können dieses Fenster schließen.
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right">
|
||||
Your InfoCenter@FHTW Team
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
Ihr InfoCenter@FHTW Team
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-center">
|
||||
<p class="signatureblock">
|
||||
Fachhochschule Technikum Wien | University of Applied Sciences Technikum Wien
|
||||
<br>Hoechstaedtplatz 6, 1200 Wien, AUSTRIA
|
||||
<br><a class="signatureblocklink" href="https://www.technikum-wien.at">www.technikum-wien.at</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/FHC-Footer"); ?>
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'MessageSent',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/messageSent.css')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
|
||||
<?php
|
||||
if ($success)
|
||||
{
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-xs-6">
|
||||
<h3 class="page-header text-right"></h3>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6">
|
||||
<h3 class="page-header"></h3>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right">
|
||||
Message sent successfully!
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
Nachricht erfolgreich versandt!
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-right" style="border-right: 1px">
|
||||
You can safely close this window.
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
Sie können dieses Fenster schließen.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-center">
|
||||
<p class="signatureblock">
|
||||
Fachhochschule Technikum Wien | University of Applied Sciences Technikum Wien
|
||||
<br>Hoechstaedtplatz 6, 1200 Wien, AUSTRIA
|
||||
<br><a class="signatureblocklink" href="https://www.technikum-wien.at">www.technikum-wien.at</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/FHC-Footer"); ?>
|
||||
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Write a message',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'ajaxlib' => true,
|
||||
'fontawesome' => true,
|
||||
'tinymce' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/messageWrite.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/messageWrite.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header"><?php echo ucfirst($this->p->t('ui', 'nachrichtSenden')); ?></h3>
|
||||
</div>
|
||||
</div>
|
||||
<form id="sendForm" method="post" action="<?php echo site_url('/system/Messages/send'); ?>">
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<div class="col-lg-1 msgfieldcol-left">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'empfaenger')).':'; ?></label>
|
||||
</div>
|
||||
<div class="col-lg-11 msgfieldcol-right">
|
||||
<?php
|
||||
for ($i = 0; $i < count($recipients); $i++)
|
||||
{
|
||||
$receiver = $recipients[$i];
|
||||
// Every 10 recipients a new line
|
||||
if ($i > 1 && $i % 10 == 0)
|
||||
{
|
||||
echo '<br>';
|
||||
}
|
||||
echo $receiver->Vorname." ".$receiver->Nachname."; ";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<div class="col-lg-1 msgfield msgfieldcol-left">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'betreff')).':'; ?></label>
|
||||
</div>
|
||||
<?php
|
||||
$subject = '';
|
||||
if (isset($message))
|
||||
{
|
||||
$subject = 'Re: '.$message->subject;
|
||||
}
|
||||
?>
|
||||
<div class="col-lg-7">
|
||||
<input id="subject" class="form-control" type="text" value="<?php echo $subject; ?>" name="subject">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-lg-10">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'nachricht')).':'; ?></label>
|
||||
<?php
|
||||
$body = '';
|
||||
if (isset($message))
|
||||
{
|
||||
$body = $message->body;
|
||||
}
|
||||
?>
|
||||
<textarea id="bodyTextArea" name="body"><?php echo $body; ?></textarea>
|
||||
</div>
|
||||
<?php
|
||||
if (isset($variables))
|
||||
{
|
||||
?>
|
||||
<div class="col-lg-2">
|
||||
<div class="form-group">
|
||||
<label><?php echo ucfirst($this->p->t('ui', 'felder')).':'; ?></label>
|
||||
<select id="variables" class="form-control" size="14" multiple="multiple">
|
||||
<?php
|
||||
foreach ($variables as $key => $val)
|
||||
{
|
||||
?>
|
||||
<option value="<?php echo $key; ?>"><?php echo $val; ?></option>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Vorlage_widget',
|
||||
array('oe_kurzbz' => $oe_kurzbz, 'isAdmin' => $isAdmin),
|
||||
array('name' => 'vorlage', 'id' => 'vorlageDnD')
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="col-lg-7 col-xs-9 text-right">
|
||||
<button id="sendButton" class="btn btn-default" type="button"><?php echo $this->p->t('ui', 'senden'); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if (isset($recipients) && count($recipients) > 0)
|
||||
{
|
||||
?>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'vorschau')).':'; ?></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="well">
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<div class="form-grop form-inline">
|
||||
<label><?php echo ucfirst($this->p->t('global', 'empfaenger')).': '; ?></label>
|
||||
<select id="recipients">
|
||||
<?php
|
||||
if (count($recipients) > 1) echo '<option value="-1">Select...</option>';
|
||||
|
||||
foreach ($recipients as $receiver)
|
||||
{
|
||||
?>
|
||||
<option value="<?php echo $receiver->person_id; ?>">
|
||||
<?php echo $receiver->Vorname." ".$receiver->Nachname; ?>
|
||||
</option>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
|
||||
<strong><a href="#" id="refresh">Refresh</a></strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<textarea id="tinymcePreview"></textarea>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
foreach ($recipients as $receiver)
|
||||
{
|
||||
echo '<input type="hidden" name="persons[]" value="'.$receiver->person_id.'">'."\n";
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
if (isset($message))
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="relationmessage_id" value="<?php echo $message->message_id; ?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/FHC-Footer"); ?>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'MessageReply',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'tinymce' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/messageWrite.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/messageWriteReply.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<?php
|
||||
$href = site_url().'/ViewMessage/sendReply';
|
||||
?>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">Send message</h3>
|
||||
</div>
|
||||
</div>
|
||||
<form id="sendForm" method="post" action="<?php echo $href; ?>">
|
||||
<?php
|
||||
$this->load->view('system/messages/messageForm.php');
|
||||
|
||||
for ($i = 0; $i < count($receivers); $i++)
|
||||
{
|
||||
$receiver = $receivers[$i];
|
||||
$receiverid = $receiver->person_id;
|
||||
$fieldname = 'persons[]';
|
||||
|
||||
echo '<input type="hidden" name="'.$fieldname.'" value="'.$receiverid.'">'."\n";
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
if (isset($message))
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="relationmessage_id" value="<?php echo $message->message_id; ?>">
|
||||
<?php
|
||||
}
|
||||
if (isset($token))
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="token" value="<?php echo $token; ?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/FHC-Footer"); ?>
|
||||
@@ -93,10 +93,11 @@
|
||||
// NavigationWidget CSS
|
||||
if ($navigationwidget === true) generateCSSsInclude('public/css/NavigationWidget.css');
|
||||
|
||||
generateCSSsInclude('public/css/fhcomplete.css');
|
||||
|
||||
// Eventually required CSS
|
||||
generateCSSsInclude($customCSSs); // Eventually required CSS
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
// Javascripts
|
||||
|
||||
|
||||
@@ -110,6 +110,7 @@ foreach($addon_obj->result as $addon)
|
||||
<command id="menu-statistic-notenspiegel:command" oncommand="StatistikPrintNotenspiegel('html');"/>
|
||||
<command id="menu-statistic-notenspiegel-excel:command" oncommand="StatistikPrintNotenspiegel('xls');"/>
|
||||
<command id="menu-statistic-notenspiegel-excel-erweitert:command" oncommand="StatistikPrintNotenspiegelErweitert('xls');"/>
|
||||
<command id="menu-statistic-notenspiegel-student:command" oncommand="StatistikPrintNotenspiegelStudent();"/>
|
||||
<command id="menu-statistic-substatistik-studentenprosemester-excel:command" oncommand="StatistikPrintStudentenProSemester('xls');"/>
|
||||
<command id="menu-statistic-substatistik-studentenprosemester-html:command" oncommand="StatistikPrintStudentenProSemester('');"/>
|
||||
<command id="menu-statistic-substatistik-alvsstatistik-excel:command" oncommand="StatistikPrintALVSStatistik('xls');"/>
|
||||
@@ -371,6 +372,12 @@ foreach($addon_obj->result as $addon)
|
||||
label = "&menu-statistic-notenspiegel.label;"
|
||||
command = "menu-statistic-notenspiegel:command"
|
||||
accesskey = "&menu-statistic-notenspiegel.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-statistic-notenspiegel-student"
|
||||
key = "menu-statistic-notenspiegel-student:key"
|
||||
label = "&menu-statistic-notenspiegel-student.label;"
|
||||
command = "menu-statistic-notenspiegel-student:command"
|
||||
accesskey = "&menu-statistic-notenspiegel-student.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menupopup>
|
||||
|
||||
@@ -1077,6 +1077,26 @@ function StatistikPrintNotenspiegelErweitert(typ)
|
||||
window.open('<?php echo APP_ROOT ?>content/statistik/notenspiegel_erweitert.php?studiengang_kz='+studiengang_kz+'&semester='+semester+'&typ='+typ+'&orgform='+orgform,'Notenspiegel');
|
||||
}
|
||||
|
||||
function StatistikPrintNotenspiegelStudent()
|
||||
{
|
||||
var tree = document.getElementById('student-tree');
|
||||
var data='';
|
||||
//Wenn nichts markiert wurde -> alle exportieren
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert("Bitte zuerst einen Studenten markieren");
|
||||
return;
|
||||
}
|
||||
|
||||
var student_uid = getTreeCellText(tree, 'student-treecol-uid', tree.currentIndex);
|
||||
if (student_uid == '')
|
||||
{
|
||||
alert('Markierte Person ist kein Student');
|
||||
return;
|
||||
}
|
||||
window.open('<?php echo APP_ROOT ?>index.ci.php/person/gradelist/index/'+student_uid,'Notenspiegel');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Liefert eine statistik ueber die Anzahl der Interessenten/Bewerber Studenten
|
||||
// ****
|
||||
@@ -1230,7 +1250,7 @@ function MessageNew()
|
||||
{
|
||||
var prestudentIdArray = getMultipleTreeCellText(tree, 'student-treecol-prestudent_id');
|
||||
|
||||
var action = '<?php echo APP_ROOT ?>index.ci.php/system/Messages/write/' + <?php echo $benutzer->person_id; ?>;
|
||||
var action = '<?php echo APP_ROOT ?>index.ci.php/system/FASMessages/write/' + <?php echo $benutzer->person_id; ?>;
|
||||
|
||||
openWindowPostArray(action, 'prestudent_id', prestudentIdArray);
|
||||
}
|
||||
|
||||
+191
-191
@@ -1,191 +1,191 @@
|
||||
<?php
|
||||
/* Copyright (C) 2016 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
?>
|
||||
// ********** FUNKTIONEN ********** //
|
||||
var MessagePersonID=null;
|
||||
var MessagesTreeDatasource=''; // Datasource des Adressen Trees
|
||||
var MessagesSelectID='';
|
||||
var MessageSenderPersonID='';
|
||||
var MessageIFrameIsInitialized=false;
|
||||
|
||||
var MessagesTreeSinkObserver =
|
||||
{
|
||||
onBeginLoad : function(pSink) {},
|
||||
onInterrupt : function(pSink) {},
|
||||
onResume : function(pSink) {},
|
||||
onError : function(pSink, pStatus, pError) {},
|
||||
onEndLoad : function(pSink)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
document.getElementById('messages-tree').builder.rebuild();
|
||||
}
|
||||
};
|
||||
|
||||
var MessagesTreeListener =
|
||||
{
|
||||
willRebuild : function(builder) { },
|
||||
didRebuild : function(builder)
|
||||
{
|
||||
//timeout nur bei Mozilla notwendig da sonst die rows
|
||||
//noch keine values haben. Ab Seamonkey funktionierts auch
|
||||
//ohne dem setTimeout
|
||||
//window.setTimeout(KontaktAdressenTreeSelectID,10);
|
||||
}
|
||||
};
|
||||
|
||||
// ****
|
||||
// * Laedt die Trees
|
||||
// ****
|
||||
function loadMessages(person_id, fas_person_id)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
MessagePersonID = person_id;
|
||||
MessageSenderPersonID=fas_person_id;
|
||||
|
||||
//Adressen laden
|
||||
url = "<?php echo APP_ROOT; ?>rdf/messages.rdf.php?person_id="+person_id+"&"+gettimestamp();
|
||||
var tree=document.getElementById('messages-tree');
|
||||
try
|
||||
{
|
||||
MessagesTreeDatasource.removeXMLSinkObserver(MessagesTreeSinkObserver);
|
||||
tree.builder.removeListener(MessagesTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = tree.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
tree.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
MessagesTreeDatasource = rdfService.GetDataSource(url);
|
||||
MessagesTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
MessagesTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
tree.database.AddDataSource(MessagesTreeDatasource);
|
||||
MessagesTreeDatasource.addXMLSinkObserver(MessagesTreeSinkObserver);
|
||||
tree.builder.addListener(MessagesTreeListener);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ****
|
||||
// * Zeigt HTML Seite zum Erstellen neuer Nachrichten
|
||||
// ****
|
||||
function MessagesNewMessage()
|
||||
{
|
||||
var tree = parent.document.getElementById('student-tree');
|
||||
|
||||
if (tree.currentIndex == -1)
|
||||
{
|
||||
alert("Bitte markieren Sie zuerst eine Person");
|
||||
}
|
||||
else
|
||||
{
|
||||
var prestudentIdArray = getMultipleTreeCellText(tree, 'student-treecol-prestudent_id');
|
||||
|
||||
var action = '<?php echo APP_ROOT ?>index.ci.php/system/Messages/write/' + MessageSenderPersonID;
|
||||
|
||||
openWindowPostArray(action, 'prestudent_id', prestudentIdArray);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Oeffnet Nachrichtenseite um eine Antwort auf eine Nachricht zu schicken
|
||||
*/
|
||||
function MessagesSendAnswer()
|
||||
{
|
||||
var messagesTree = document.getElementById('messages-tree');
|
||||
var studentsTree = parent.document.getElementById('student-tree');
|
||||
|
||||
if (messagesTree.currentIndex == -1)
|
||||
{
|
||||
alert("Bitte markieren Sie zuerst eine Nachricht");
|
||||
}
|
||||
else
|
||||
{
|
||||
var MessageId = getTreeCellText(messagesTree, 'messages-tree-message_id', messagesTree.currentIndex);
|
||||
var RecipientID = getTreeCellText(messagesTree, 'messages-tree-recipient_id', messagesTree.currentIndex);
|
||||
var prestudentIdArray = new Array(getTreeCellText(studentsTree, 'student-treecol-prestudent_id', studentsTree.currentIndex));
|
||||
|
||||
var action = '<?php echo APP_ROOT ?>index.ci.php/system/Messages/write/' + MessageSenderPersonID + '/' + MessageId + '/' + RecipientID;
|
||||
|
||||
openWindowPostArray(action, 'prestudent_id', prestudentIdArray);
|
||||
}
|
||||
}
|
||||
|
||||
function MessageAuswahl()
|
||||
{
|
||||
var tree=document.getElementById('messages-tree');
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert("Bitte markieren Sie zuerst eine Nachricht");
|
||||
}
|
||||
else
|
||||
{
|
||||
var text = getTreeCellText(tree, 'messages-tree-body', tree.currentIndex);
|
||||
var recipient_id = getTreeCellText(tree, 'messages-tree-recipient_id', tree.currentIndex);
|
||||
// Antworten ist nur moeglich wenn die Message vom User kommt
|
||||
if(recipient_id==MessagePersonID)
|
||||
{
|
||||
document.getElementById('messages-tree-popup-answer').disabled=true;
|
||||
document.getElementById('messages-button-answer').disabled=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById('messages-tree-popup-answer').disabled=false;
|
||||
document.getElementById('messages-button-answer').disabled=false;
|
||||
}
|
||||
}
|
||||
|
||||
MessagesIFrameSetHTML(text);
|
||||
}
|
||||
|
||||
function MessagesIFrameSetHTML(val)
|
||||
{
|
||||
MessageIFrameInit();
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
editor = document.getElementById('message-wysiwyg');
|
||||
|
||||
if(editor.contentWindow.document.body.innerHTML!='')
|
||||
{
|
||||
//Inhalt leeren
|
||||
editor.contentDocument.execCommand("selectall", false, null);
|
||||
editor.contentDocument.execCommand("delete", false, null);
|
||||
}
|
||||
//Value setzen
|
||||
if(val!='')
|
||||
editor.contentDocument.execCommand("inserthtml", false, val);
|
||||
}
|
||||
|
||||
function MessageIFrameInit()
|
||||
{
|
||||
if(!MessageIFrameIsInitialized)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
editor = document.getElementById('message-wysiwyg');
|
||||
editor.contentDocument.designMode = 'on';
|
||||
editor.style.backgroundColor="#FFFFFF";
|
||||
MessageIFrameIsInitialized=true;
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/* Copyright (C) 2016 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
?>
|
||||
// ********** FUNKTIONEN ********** //
|
||||
var MessagePersonID=null;
|
||||
var MessagesTreeDatasource=''; // Datasource des Adressen Trees
|
||||
var MessagesSelectID='';
|
||||
var MessageSenderPersonID='';
|
||||
var MessageIFrameIsInitialized=false;
|
||||
|
||||
var MessagesTreeSinkObserver =
|
||||
{
|
||||
onBeginLoad : function(pSink) {},
|
||||
onInterrupt : function(pSink) {},
|
||||
onResume : function(pSink) {},
|
||||
onError : function(pSink, pStatus, pError) {},
|
||||
onEndLoad : function(pSink)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
document.getElementById('messages-tree').builder.rebuild();
|
||||
}
|
||||
};
|
||||
|
||||
var MessagesTreeListener =
|
||||
{
|
||||
willRebuild : function(builder) { },
|
||||
didRebuild : function(builder)
|
||||
{
|
||||
//timeout nur bei Mozilla notwendig da sonst die rows
|
||||
//noch keine values haben. Ab Seamonkey funktionierts auch
|
||||
//ohne dem setTimeout
|
||||
//window.setTimeout(KontaktAdressenTreeSelectID,10);
|
||||
}
|
||||
};
|
||||
|
||||
// ****
|
||||
// * Laedt die Trees
|
||||
// ****
|
||||
function loadMessages(person_id, fas_person_id)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
MessagePersonID = person_id;
|
||||
MessageSenderPersonID=fas_person_id;
|
||||
|
||||
//Adressen laden
|
||||
url = "<?php echo APP_ROOT; ?>rdf/messages.rdf.php?person_id="+person_id+"&"+gettimestamp();
|
||||
var tree=document.getElementById('messages-tree');
|
||||
try
|
||||
{
|
||||
MessagesTreeDatasource.removeXMLSinkObserver(MessagesTreeSinkObserver);
|
||||
tree.builder.removeListener(MessagesTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = tree.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
tree.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
MessagesTreeDatasource = rdfService.GetDataSource(url);
|
||||
MessagesTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
MessagesTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
tree.database.AddDataSource(MessagesTreeDatasource);
|
||||
MessagesTreeDatasource.addXMLSinkObserver(MessagesTreeSinkObserver);
|
||||
tree.builder.addListener(MessagesTreeListener);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ****
|
||||
// * Zeigt HTML Seite zum Erstellen neuer Nachrichten
|
||||
// ****
|
||||
function MessagesNewMessage()
|
||||
{
|
||||
var tree = parent.document.getElementById('student-tree');
|
||||
|
||||
if (tree.currentIndex == -1)
|
||||
{
|
||||
alert("Bitte markieren Sie zuerst eine Person");
|
||||
}
|
||||
else
|
||||
{
|
||||
var prestudentIdArray = getMultipleTreeCellText(tree, 'student-treecol-prestudent_id');
|
||||
|
||||
var action = '<?php echo APP_ROOT ?>index.ci.php/system/FASMessages/write/' + MessageSenderPersonID;
|
||||
|
||||
openWindowPostArray(action, 'prestudent_id', prestudentIdArray);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Oeffnet Nachrichtenseite um eine Antwort auf eine Nachricht zu schicken
|
||||
*/
|
||||
function MessagesSendAnswer()
|
||||
{
|
||||
var messagesTree = document.getElementById('messages-tree');
|
||||
var studentsTree = parent.document.getElementById('student-tree');
|
||||
|
||||
if (messagesTree.currentIndex == -1)
|
||||
{
|
||||
alert("Bitte markieren Sie zuerst eine Nachricht");
|
||||
}
|
||||
else
|
||||
{
|
||||
var MessageId = getTreeCellText(messagesTree, 'messages-tree-message_id', messagesTree.currentIndex);
|
||||
var RecipientID = getTreeCellText(messagesTree, 'messages-tree-recipient_id', messagesTree.currentIndex);
|
||||
var prestudentIdArray = new Array(getTreeCellText(studentsTree, 'student-treecol-prestudent_id', studentsTree.currentIndex));
|
||||
|
||||
var action = '<?php echo APP_ROOT ?>index.ci.php/system/FASMessages/writeReply/' + MessageSenderPersonID + '/' + MessageId + '/' + RecipientID;
|
||||
|
||||
openWindowPostArray(action, 'prestudent_id', prestudentIdArray);
|
||||
}
|
||||
}
|
||||
|
||||
function MessageAuswahl()
|
||||
{
|
||||
var tree=document.getElementById('messages-tree');
|
||||
if (tree.currentIndex == -1)
|
||||
{
|
||||
alert("Bitte markieren Sie zuerst eine Nachricht");
|
||||
}
|
||||
else
|
||||
{
|
||||
var text = getTreeCellText(tree, 'messages-tree-body', tree.currentIndex);
|
||||
var recipient_id = getTreeCellText(tree, 'messages-tree-recipient_id', tree.currentIndex);
|
||||
// Antworten ist nur moeglich wenn die Message vom User kommt
|
||||
if (recipient_id == MessagePersonID)
|
||||
{
|
||||
document.getElementById('messages-tree-popup-answer').disabled=true;
|
||||
document.getElementById('messages-button-answer').disabled=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById('messages-tree-popup-answer').disabled=false;
|
||||
document.getElementById('messages-button-answer').disabled=false;
|
||||
}
|
||||
}
|
||||
|
||||
MessagesIFrameSetHTML(text);
|
||||
}
|
||||
|
||||
function MessagesIFrameSetHTML(val)
|
||||
{
|
||||
MessageIFrameInit();
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
editor = document.getElementById('message-wysiwyg');
|
||||
|
||||
if(editor.contentWindow.document.body.innerHTML!='')
|
||||
{
|
||||
//Inhalt leeren
|
||||
editor.contentDocument.execCommand("selectall", false, null);
|
||||
editor.contentDocument.execCommand("delete", false, null);
|
||||
}
|
||||
//Value setzen
|
||||
if(val!='')
|
||||
editor.contentDocument.execCommand("inserthtml", false, val);
|
||||
}
|
||||
|
||||
function MessageIFrameInit()
|
||||
{
|
||||
if(!MessageIFrameIsInitialized)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
editor = document.getElementById('message-wysiwyg');
|
||||
editor.contentDocument.designMode = 'on';
|
||||
editor.style.backgroundColor="#FFFFFF";
|
||||
MessageIFrameIsInitialized=true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,6 +114,10 @@
|
||||
<!ENTITY menu-statistic-notenspiegel.label "Notenspiegel HTML">
|
||||
<!ENTITY menu-statistic-notenspiegel.accesskey "H">
|
||||
|
||||
<!ENTITY menu-statistic-notenspiegel-student.key "S">
|
||||
<!ENTITY menu-statistic-notenspiegel-student.label "Notenspiegel Student">
|
||||
<!ENTITY menu-statistic-notenspiegel-student.accesskey "S">
|
||||
|
||||
<!ENTITY menu-statistic-substatistik-bewerberstatistik.label "BewerberInnenstatistik">
|
||||
<!ENTITY menu-statistic-substatistik-bewerberstatistik.accesskey "B">
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
.page-header {
|
||||
margin: 10px 0 5px;
|
||||
}
|
||||
h1 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
h5 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
h6 {
|
||||
font-size: 1rem;
|
||||
|
||||
}
|
||||
@@ -19,6 +19,10 @@
|
||||
border-bottom: #ccc 2px solid !important;
|
||||
}
|
||||
|
||||
/* Remove black border at top of table footer */
|
||||
.tablesorter-default tfoot > tr > th {
|
||||
border-top: #ccc 2px solid !important;
|
||||
}
|
||||
/* set colors of zebra widget */
|
||||
table.tablesorter tbody tr.even td, table.tablesorter tbody tr.even:hover, table.tablesorter tbody tr.even td:hover{
|
||||
background-color: #ffff;
|
||||
@@ -57,4 +61,4 @@ table.tablesort-hover tr:hover, .tablesort-active{
|
||||
/* bring datepicker to front */
|
||||
#ui-datepicker-div{
|
||||
z-index: 9999 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
.gradetable > thead > tr > th{
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
.gradetable > tbody > tr > td{
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
.gradetable > tfoot > tr > th {
|
||||
border-top: 1px solid black;
|
||||
}
|
||||
.gradelist_row_lv {
|
||||
}
|
||||
.gradelist_row_modul > td {
|
||||
border-bottom: 1px solid black;
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
|
||||
.gradelist_row_grade_positiv {
|
||||
color: green;
|
||||
}
|
||||
.gradelist_row_grade_negativ {
|
||||
color: red;
|
||||
}
|
||||
.gradelist_row_depth_1 > td:first-child {
|
||||
padding-left: 15px !important;
|
||||
}
|
||||
.gradelist_row_depth_2 > td:first-child {
|
||||
padding-left: 30px !important;
|
||||
}
|
||||
.gradelist_row_depth_3 > td:first-child {
|
||||
padding-left: 45px !important;
|
||||
}
|
||||
.gradelist_row_depth_4 > td:first-child {
|
||||
padding-left: 60px !important;
|
||||
}
|
||||
.gradelist_row_depth_5 > td:first-child {
|
||||
padding-left: 75px !important;
|
||||
}
|
||||
.gradelist_row_depth_6 > td:first-child {
|
||||
padding-left: 90px !important;
|
||||
}
|
||||
@@ -146,10 +146,7 @@ var FHC_AjaxClient = {
|
||||
|
||||
if (jQuery.type(response) == "object" && response.hasOwnProperty(CODE))
|
||||
{
|
||||
if (response.error == SUCCESS)
|
||||
{
|
||||
isSuccess = true;
|
||||
}
|
||||
code = response.error;
|
||||
}
|
||||
|
||||
return code;
|
||||
|
||||
@@ -25,7 +25,10 @@ var FHC_PhrasesLib = {
|
||||
* @param {Object} params : parameters to be replaced instead of {<parameter name>} in phraseObj.text
|
||||
* @returns {String} : phrase-text
|
||||
*/
|
||||
t: function(category, phrase, params = {}) {
|
||||
t: function(category, phrase, params) {
|
||||
|
||||
if (typeof(params)=='undefined')
|
||||
params = {};
|
||||
|
||||
// Checks if FHC_JS_PHRASES_STORAGE_OBJECT is an array
|
||||
if ($.isArray(FHC_JS_PHRASES_STORAGE_OBJECT))
|
||||
|
||||
@@ -480,7 +480,8 @@ var InfocenterDetails = {
|
||||
return;
|
||||
|
||||
// check if a prestudent in same semester is already freigegeben - then not send message again
|
||||
var freigegeben = false;
|
||||
var rtFreigegeben = false;
|
||||
var stgFreigegeben = false;
|
||||
var receiverPrestudentstatus = null;
|
||||
|
||||
//get prestudentstatus of message receiver
|
||||
@@ -509,8 +510,15 @@ var InfocenterDetails = {
|
||||
&& prestudentstatus.bestaetigtam !== null && prestudentstatus.status_kurzbz === "Interessent"
|
||||
&& prestudent.studiengangtyp === "b")
|
||||
{
|
||||
freigegeben = true;
|
||||
break;
|
||||
if (prestudentstatus.statusgrund_id === null)
|
||||
{
|
||||
rtFreigegeben = true;
|
||||
break;
|
||||
}
|
||||
else if($.isNumeric(prestudentstatus.statusgrund_id))
|
||||
{
|
||||
stgFreigegeben = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -520,46 +528,51 @@ var InfocenterDetails = {
|
||||
var studiengangbezeichnung_englisch = receiverPrestudentstatus.studiengangbezeichnung_englisch;
|
||||
var msgvars = {};
|
||||
|
||||
if (freigegeben)
|
||||
if (rtfreigabe)
|
||||
{
|
||||
InfocenterDetails._refreshLog();
|
||||
//if already freigegeben, still send (shorter) message if Quereinsteiger
|
||||
if (ausbildungssemester > 1)
|
||||
{
|
||||
msgvars = {
|
||||
'ausbildungssemester': ausbildungssemester,
|
||||
'studiengangbezeichnung': studiengangbezeichnung,
|
||||
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
|
||||
};
|
||||
InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var vorlage_kurzbz = null;
|
||||
|
||||
if (rtfreigabe)
|
||||
if (rtFreigegeben)
|
||||
{
|
||||
//if already for RT freigegeben, still send short message if Quereinsteiger
|
||||
if (ausbildungssemester > 1)
|
||||
{
|
||||
vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE_QUER;
|
||||
msgvars = {
|
||||
/*'rtlink': FHC_JS_DATA_STORAGE_OBJECT.app_root + 'addons/bewerbung/cis/registration.php?active=aufnahme',*/
|
||||
'ausbildungssemester': ausbildungssemester,
|
||||
'studiengangbezeichnung': studiengangbezeichnung,
|
||||
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
|
||||
}
|
||||
};
|
||||
|
||||
InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
|
||||
}
|
||||
}
|
||||
else //not already for RT freigegeben - send RTfreigabe message
|
||||
{
|
||||
var vorlage = null;
|
||||
//send Quereinstiegsmessage if later Ausbildungssemester
|
||||
if (ausbildungssemester > 1)
|
||||
{
|
||||
msgvars = {
|
||||
'ausbildungssemester': ausbildungssemester,
|
||||
'studiengangbezeichnung': studiengangbezeichnung,
|
||||
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
|
||||
};
|
||||
vorlage = RTFREIGABE_MESSAGE_VORLAGE_QUER
|
||||
}
|
||||
else
|
||||
{
|
||||
vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE;
|
||||
//send normal RTfreigabe message
|
||||
vorlage = RTFREIGABE_MESSAGE_VORLAGE
|
||||
}
|
||||
|
||||
InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage, msgvars);
|
||||
}
|
||||
else
|
||||
}
|
||||
else if (rtfreigabe === false)
|
||||
{
|
||||
// if Freigabe to Studiengang, send StgFreigabe Message if not already sent
|
||||
if (!stgFreigegeben)
|
||||
{
|
||||
vorlage_kurzbz = STGFREIGABE_MESSAGE_VORLAGE;
|
||||
InfocenterDetails.sendFreigabeMessage(prestudentid, STGFREIGABE_MESSAGE_VORLAGE, msgvars);
|
||||
}
|
||||
InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage_kurzbz, msgvars);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -727,7 +740,7 @@ var InfocenterDetails = {
|
||||
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
|
||||
var statusgrund_id = $("#frgstatusgrselect_" + prestudent_id + " select[name=frgstatusgrund]").val();
|
||||
var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id};
|
||||
InfocenterDetails.saveFreigabe(data);//Studiengangfreigabe
|
||||
InfocenterDetails.saveFreigabe(data, false);//Studiengangfreigabe
|
||||
}
|
||||
)
|
||||
},
|
||||
|
||||
@@ -27,7 +27,7 @@ var InfocenterPersonDataset = {
|
||||
appendTableActionsHtml: function()
|
||||
{
|
||||
var currurl = window.location.href;
|
||||
var url = currurl.replace(/infocenter\/InfoCenter(.*)/, "Messages/write");
|
||||
var url = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/system/Messages/write";
|
||||
|
||||
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
|
||||
$("#datasetActionsTop").before(formHtml);
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
/**
|
||||
* JS used by view system/messages/messageWrite
|
||||
*/
|
||||
|
||||
function tinymcePreviewSetContent()
|
||||
{
|
||||
if ($("#tinymcePreview"))
|
||||
{
|
||||
if ($("#recipients").children(":selected").val() > -1)
|
||||
{
|
||||
parseMessageText($("#recipients").children(":selected").val(), tinyMCE.get("bodyTextArea").getContent());
|
||||
}
|
||||
else
|
||||
{
|
||||
tinyMCE.get("tinymcePreview").setContent("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function parseMessageText(receiver_id, text)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
"system/Messages/parseMessageText",
|
||||
{
|
||||
person_id: receiver_id,
|
||||
text: text
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
tinyMCE.get("tinymcePreview").setContent(FHC_AjaxClient.getData(data));
|
||||
}
|
||||
else if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
alert(data.retval);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$(document).ready(function ()
|
||||
{
|
||||
tinymce.init({
|
||||
selector: "#bodyTextArea",
|
||||
plugins: "autoresize",
|
||||
autoresize_min_height: 150,
|
||||
autoresize_max_height: 600,
|
||||
autoresize_bottom_margin: 10
|
||||
});
|
||||
|
||||
tinymce.init({
|
||||
menubar: false,
|
||||
toolbar: false,
|
||||
statusbar: false,
|
||||
readonly: 1,
|
||||
selector: "#tinymcePreview",
|
||||
plugins: "autoresize",
|
||||
autoresize_min_height: 150,
|
||||
autoresize_bottom_margin: 10
|
||||
});
|
||||
|
||||
if ($("#variables"))
|
||||
{
|
||||
$("#variables").dblclick(function ()
|
||||
{
|
||||
if ($("#bodyTextArea"))
|
||||
{
|
||||
//if editor active add at cursor position, otherwise at end
|
||||
if (tinymce.activeEditor.id === "bodyTextArea")
|
||||
tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).children(":selected").val());
|
||||
else
|
||||
tinyMCE.get("bodyTextArea").setContent(tinyMCE.get("bodyTextArea").getContent() + $(this).children(":selected").val());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($("#recipients"))
|
||||
{
|
||||
$("#recipients").change(tinymcePreviewSetContent);
|
||||
}
|
||||
|
||||
if ($("#refresh"))
|
||||
{
|
||||
$("#refresh").click(tinymcePreviewSetContent);
|
||||
}
|
||||
|
||||
if ($("#sendButton") && $("#sendForm"))
|
||||
{
|
||||
$("#sendButton").click(function ()
|
||||
{
|
||||
if ($("#subject") && $("#subject").val() != '' && tinyMCE.get("bodyTextArea").getContent() != '')
|
||||
{
|
||||
$("#sendForm").submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Subject and text are required fields!");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($("#vorlageDnD"))
|
||||
{
|
||||
$("#vorlageDnD").change(function ()
|
||||
{
|
||||
var vorlage_kurzbz = this.value;
|
||||
|
||||
if (vorlage_kurzbz != '')
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
"system/Messages/getVorlage",
|
||||
{
|
||||
vorlage_kurzbz: vorlage_kurzbz
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
var msg = FHC_AjaxClient.getData(data);
|
||||
|
||||
tinyMCE.get("bodyTextArea").setContent(msg[0].text);
|
||||
$("#subject").val(msg[0].subject);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("#subject").focus();
|
||||
|
||||
});
|
||||
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* JS used by view system/messages/messageWriteReply
|
||||
*/
|
||||
|
||||
$(document).ready(function ()
|
||||
{
|
||||
tinymce.init({
|
||||
selector: "#bodyTextArea",
|
||||
plugins: "autoresize",
|
||||
autoresize_min_height: 150,
|
||||
autoresize_max_height: 600,
|
||||
autoresize_bottom_margin: 10,
|
||||
auto_focus: "bodyTextArea"
|
||||
});
|
||||
|
||||
if ($("#sendButton") && $("#sendForm"))
|
||||
{
|
||||
$("#sendButton").click(function () {
|
||||
|
||||
if ($("#subject") && $("#subject").val() != '' && tinyMCE.get("bodyTextArea").getContent() != '')
|
||||
{
|
||||
$("#sendForm").submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Subject and text are required fields!");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -92,6 +92,7 @@ $beschreibung=1;
|
||||
$berechtigungen = array(
|
||||
array('admin','Super User Rechte'),
|
||||
array('assistenz','Assistenz'),
|
||||
array('student','Defaultberechtigung für Studierende'),
|
||||
array('basis/addon','Addons verwalten'),
|
||||
array('basis/ampel','Ampeln Administrieren'),
|
||||
array('basis/ampeluebersicht','Ampel Übersicht für Leiter'),
|
||||
|
||||
@@ -36,6 +36,7 @@ $filters = array(
|
||||
{"name": "StgAbgeschickt"},
|
||||
{"name": "Studiensemester"},
|
||||
{"name": "LastAction"},
|
||||
{"name": "LastActionType"},
|
||||
{"name": "User/Operator"},
|
||||
{"name": "LockUser"}
|
||||
],
|
||||
@@ -68,6 +69,7 @@ $filters = array(
|
||||
{"name": "StgAbgeschickt"},
|
||||
{"name": "Studiensemester"},
|
||||
{"name": "LastAction"},
|
||||
{"name": "LastActionType"},
|
||||
{"name": "User/Operator"},
|
||||
{"name": "LockUser"}
|
||||
],
|
||||
|
||||
+120
-6
@@ -1519,7 +1519,6 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'filter',
|
||||
@@ -1541,9 +1540,6 @@ $phrases = array(
|
||||
)
|
||||
),
|
||||
|
||||
|
||||
|
||||
|
||||
//**************************** CORE/person
|
||||
array(
|
||||
'app' => 'core',
|
||||
@@ -2207,8 +2203,126 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'lehre',
|
||||
'phrase' => 'ects',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'ECTS',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'ECTS',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'lehre',
|
||||
'phrase' => 'notendurchschnitt',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Notendurchschnitt',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Grade average',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'lehre',
|
||||
'phrase' => 'gewichteternotendurchschnitt',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'gewichteter Notendurchschnitt',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'weighted grade point average',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'lehre',
|
||||
'phrase' => 'note',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Note',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Grade',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'lehre',
|
||||
'phrase' => 'lehrveranstaltung',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Lehrveranstaltung',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Course',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'lehre',
|
||||
'phrase' => 'nichtstudienplanrelevanteKurse',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Nicht studienplanrelevante Lehrveranstaltung',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'additional Courses',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
//********************** INFOCENTER/infocenter
|
||||
array(
|
||||
|
||||
@@ -0,0 +1,529 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version="1.0"
|
||||
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
|
||||
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
|
||||
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
|
||||
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
|
||||
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
|
||||
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
|
||||
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
|
||||
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
>
|
||||
|
||||
<xsl:output method="xml" version="1.0" indent="yes"/>
|
||||
<xsl:template match="lehrauftraege">
|
||||
|
||||
<office:document-content
|
||||
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
|
||||
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
|
||||
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
|
||||
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
|
||||
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
|
||||
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
|
||||
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
|
||||
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
|
||||
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
|
||||
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
|
||||
xmlns:math="http://www.w3.org/1998/Math/MathML"
|
||||
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
|
||||
xmlns:ooo="http://openoffice.org/2004/office"
|
||||
xmlns:ooow="http://openoffice.org/2004/writer"
|
||||
xmlns:oooc="http://openoffice.org/2004/calc"
|
||||
xmlns:dom="http://www.w3.org/2001/xml-events"
|
||||
xmlns:xforms="http://www.w3.org/2002/xforms"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:rpt="http://openoffice.org/2005/report"
|
||||
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
||||
xmlns:grddl="http://www.w3.org/2003/g/data-view#"
|
||||
xmlns:officeooo="http://openoffice.org/2009/office"
|
||||
xmlns:tableooo="http://openoffice.org/2009/table"
|
||||
xmlns:drawooo="http://openoffice.org/2010/draw"
|
||||
xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
|
||||
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
|
||||
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
|
||||
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
|
||||
xmlns:css3t="http://www.w3.org/TR/css3-text/"
|
||||
office:version="1.2">
|
||||
<office:scripts/>
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="Mangal2" svg:font-family="Mangal"/>
|
||||
<style:font-face style:name="Arial1" svg:font-family="Arial" style:font-family-generic="roman" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Helvetica" svg:font-family="Helvetica" style:font-family-generic="roman" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Liberation Serif" svg:font-family="'Liberation Serif'" style:font-family-generic="roman" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Mangal" svg:font-family="Mangal" style:font-family-generic="roman" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="roman" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="0" svg:font-family="0" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Arial2" svg:font-family="Arial" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Liberation Sans1" svg:font-family="'Liberation Sans'" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Liberation Serif1" svg:font-family="'Liberation Serif'" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Mangal1" svg:font-family="Mangal" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Microsoft YaHei" svg:font-family="'Microsoft YaHei'" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Tahoma1" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
</office:font-face-decls>
|
||||
<office:automatic-styles>
|
||||
<style:style style:name="Tabelle1" style:family="table">
|
||||
<style:table-properties style:width="17cm" table:align="margins"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="1.499cm" style:rel-column-width="850*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.B" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="5.595cm" style:rel-column-width="3172*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.C" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="3.704cm" style:rel-column-width="2100*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.D" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="1.997cm" style:rel-column-width="1132*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.E" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="1.298cm" style:rel-column-width="736*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.F" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="1.011cm" style:rel-column-width="573*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.G" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="1.894cm" style:rel-column-width="1074*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A1" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.G1" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding-left="0.07cm" fo:padding-right="0.07cm" fo:padding-top="0.05cm" fo:padding-bottom="0.05cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.G2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding-left="0.07cm" fo:padding-right="0.07cm" fo:padding-top="0.05cm" fo:padding-bottom="0.05cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle2" style:family="table">
|
||||
<style:table-properties style:width="17cm" table:align="margins" style:shadow="none" fo:keep-with-next="always"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle2.A" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="6.001cm" style:rel-column-width="3402*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle2.B" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="3cm" style:rel-column-width="1701*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle2.C" style:family="table-column">
|
||||
<style:table-column-properties style:column-width="7.999cm" style:rel-column-width="4535*"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle2.1" style:family="table-row">
|
||||
<style:table-row-properties style:min-row-height="1.499cm"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle2.A1" style:family="table-cell">
|
||||
<style:table-cell-properties style:vertical-align="bottom" fo:padding="0.097cm" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="1pt dotted #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle2.B1" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
|
||||
</style:style>
|
||||
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="001fea3c" officeooo:paragraph-rsid="001fea3c" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="0013c612" officeooo:paragraph-rsid="0013c612" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="002ab151" officeooo:paragraph-rsid="002ab151" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="002c2d13" officeooo:paragraph-rsid="002c2d13" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:font-weight="bold" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="P11" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001fea3c" officeooo:paragraph-rsid="001fea3c" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="P13" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="0021faff" officeooo:paragraph-rsid="0021faff" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="P14" style:family="paragraph" style:parent-style-name="Table_20_Contents">
|
||||
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0cm" loext:contextual-spacing="false">
|
||||
<style:tab-stops>
|
||||
<style:tab-stop style:position="7.001cm" style:leader-style="solid" style:leader-text="_"/>
|
||||
</style:tab-stops>
|
||||
</style:paragraph-properties>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:language="de" fo:country="AT" style:text-underline-style="dotted" style:text-underline-width="bold" style:text-underline-color="font-color" officeooo:rsid="0013c612" officeooo:paragraph-rsid="002ab151" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Header">
|
||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||
<style:text-properties style:font-name="Arial" officeooo:rsid="00220045" officeooo:paragraph-rsid="00220045"/>
|
||||
</style:style>
|
||||
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Header">
|
||||
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="00220045" officeooo:paragraph-rsid="00220045" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="14pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="12.25pt" style:font-size-complex="14pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="12pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="12pt" style:font-size-complex="12pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P19" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P20" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="0021faff" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:font-weight="bold" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="8pt" style:font-weight-asian="bold" style:font-size-complex="8pt" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="P22" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:language="en" fo:country="US" officeooo:rsid="001ece18" officeooo:paragraph-rsid="0021faff" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:language="en" fo:country="US" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P24" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false">
|
||||
<style:tab-stops>
|
||||
<style:tab-stop style:position="7.001cm" style:leader-style="solid" style:leader-text="_"/>
|
||||
</style:tab-stops>
|
||||
</style:paragraph-properties>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:language="de" fo:country="AT" officeooo:rsid="001ece18" officeooo:paragraph-rsid="0021faff" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="10pt" fo:font-weight="bold" officeooo:rsid="001ece18" officeooo:paragraph-rsid="00220045" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0cm" loext:contextual-spacing="false">
|
||||
<style:tab-stops>
|
||||
<style:tab-stop style:position="7.001cm" style:leader-style="solid" style:leader-text="_"/>
|
||||
</style:tab-stops>
|
||||
</style:paragraph-properties>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:language="de" fo:country="AT" style:text-underline-style="dotted" style:text-underline-width="bold" style:text-underline-color="font-color" officeooo:rsid="001ece18" officeooo:paragraph-rsid="0021faff" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="end" style:justify-single-word="false">
|
||||
<style:tab-stops>
|
||||
<style:tab-stop style:position="7.001cm" style:leader-style="solid" style:leader-text="_"/>
|
||||
</style:tab-stops>
|
||||
</style:paragraph-properties>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:language="de" fo:country="AT" style:text-underline-style="dotted" style:text-underline-width="bold" style:text-underline-color="font-color" officeooo:rsid="001ece18" officeooo:paragraph-rsid="0021faff" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="end" style:justify-single-word="false">
|
||||
<style:tab-stops>
|
||||
<style:tab-stop style:position="7.001cm" style:leader-style="solid" style:leader-text="_"/>
|
||||
</style:tab-stops>
|
||||
</style:paragraph-properties>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:language="de" fo:country="AT" style:text-underline-style="dotted" style:text-underline-width="bold" style:text-underline-color="font-color" officeooo:rsid="002ab151" officeooo:paragraph-rsid="002ab151" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0cm" loext:contextual-spacing="false">
|
||||
<style:tab-stops>
|
||||
<style:tab-stop style:position="7.001cm" style:leader-style="solid" style:leader-text="_"/>
|
||||
</style:tab-stops>
|
||||
</style:paragraph-properties>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" fo:language="de" fo:country="AT" officeooo:rsid="001ece18" officeooo:paragraph-rsid="0021faff" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P30" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="end" style:justify-single-word="false">
|
||||
<style:tab-stops>
|
||||
<style:tab-stop style:position="7.001cm" style:leader-style="solid" style:leader-text="_"/>
|
||||
</style:tab-stops>
|
||||
</style:paragraph-properties>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="0021faff" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P31" style:family="paragraph" style:parent-style-name="Standard" style:master-page-name="">
|
||||
<loext:graphic-properties draw:fill="none"/>
|
||||
<style:paragraph-properties fo:margin-left="0.3cm" fo:margin-right="8.999cm" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="12pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="12pt" style:font-size-complex="12pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="Seitenumbruch" style:family="paragraph" style:parent-style-name="Standard" style:master-page-name="">
|
||||
<style:paragraph-properties fo:break-before="page"/>
|
||||
<loext:graphic-properties draw:fill="none"/>
|
||||
<style:paragraph-properties fo:margin-left="0.3cm" fo:margin-right="8.999cm" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="12pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="12pt" style:font-size-complex="12pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P32" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<loext:graphic-properties draw:fill="none"/>
|
||||
<style:paragraph-properties fo:margin-left="0.3cm" fo:margin-right="8.999cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="12pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="12pt" style:font-size-complex="12pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P33" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<loext:graphic-properties draw:fill="none"/>
|
||||
<style:paragraph-properties fo:margin-left="0.3cm" fo:margin-right="8.999cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="14pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="12.25pt" style:font-size-complex="14pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P34" style:family="paragraph" style:parent-style-name="Standard">
|
||||
<loext:graphic-properties draw:fill="none"/>
|
||||
<style:paragraph-properties fo:margin-left="0.3cm" fo:margin-right="8.999cm" fo:text-indent="0cm" style:auto-text-indent="false"/>
|
||||
<style:text-properties style:font-name="Arial" fo:font-size="7pt" officeooo:rsid="001ece18" officeooo:paragraph-rsid="001ece18" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
|
||||
</style:style>
|
||||
<style:style style:name="P35" style:family="paragraph">
|
||||
<loext:graphic-properties draw:fill-color="#999999"/>
|
||||
<style:paragraph-properties fo:text-align="center"/>
|
||||
</style:style>
|
||||
<style:style style:name="T1" style:family="text">
|
||||
<style:text-properties officeooo:rsid="001f0457"/>
|
||||
</style:style>
|
||||
<style:style style:name="T2" style:family="text">
|
||||
<style:text-properties officeooo:rsid="001fb2b6"/>
|
||||
</style:style>
|
||||
<style:style style:name="T3" style:family="text">
|
||||
<style:text-properties officeooo:rsid="001fea3c"/>
|
||||
</style:style>
|
||||
<style:style style:name="T4" style:family="text">
|
||||
<style:text-properties fo:language="en" fo:country="US"/>
|
||||
</style:style>
|
||||
<style:style style:name="T5" style:family="text">
|
||||
<style:text-properties officeooo:rsid="00220045"/>
|
||||
</style:style>
|
||||
<style:style style:name="T6" style:family="text">
|
||||
<style:text-properties officeooo:rsid="0023d767"/>
|
||||
</style:style>
|
||||
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
|
||||
<style:graphic-properties fo:margin-left="0.318cm" fo:margin-right="0.318cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:run-through="background" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" draw:fill="none" draw:fill-color="#ffffff" fo:padding="0cm" fo:border="none" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
|
||||
</style:style>
|
||||
<style:style style:name="fr2" style:family="graphic" style:parent-style-name="Graphics">
|
||||
<style:graphic-properties style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="char" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
|
||||
</style:style>
|
||||
<style:style style:name="gr1" style:family="graphic">
|
||||
<style:graphic-properties svg:stroke-color="#b2b2b2" draw:fill-color="#b2b2b2" draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle" style:protect="position size" style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="page" style:horizontal-pos="from-left" style:horizontal-rel="page"/>
|
||||
</style:style>
|
||||
</office:automatic-styles>
|
||||
<office:body>
|
||||
<xsl:apply-templates select="lehrauftrag"/>
|
||||
</office:body>
|
||||
</office:document-content>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="lehrauftrag">
|
||||
<office:text text:use-soft-page-breaks="true" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
|
||||
<text:sequence-decls>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
|
||||
</text:sequence-decls>
|
||||
<!-- Wichtig für Mehrfachdruck (mehrere Studenten ausgewählt): Wenn ein Element (in diesem Fall Stempel und Unterschriftenblock) relativ zur SEITE ausgerichtet werden soll,
|
||||
muss für jedes Dokument (jeder neue Durchlauf der Schleife) ein draw:frame-Tag definiert werden. Diese müssen ALLE VOR den ersten text:p-Elementen stehen.
|
||||
Deshalb wirde erst die Schleife für die draw:frames aufgerufen, dann folg tder Inhalt -->
|
||||
<xsl:if test="position()=1">
|
||||
<xsl:for-each select="../lehrauftrag">
|
||||
<xsl:variable select="position()" name="number"/><!-- Variable number definieren, die nach jedem Dokument um eines erhöht wird (position) -->
|
||||
<draw:line text:anchor-type="page" text:anchor-page-number="{$number}" draw:z-index="1" draw:style-name="gr{$number}" draw:text-style-name="P35" svg:x1="1.199cm" svg:y1="9.601cm" svg:x2="0.7cm" svg:y2="9.601cm">
|
||||
<text:p/>
|
||||
</draw:line>
|
||||
<draw:line text:anchor-type="page" text:anchor-page-number="{$number}" draw:z-index="2" draw:style-name="gr{$number}" draw:text-style-name="P35" svg:x1="1.199cm" svg:y1="14.101cm" svg:x2="0.7cm" svg:y2="14.101cm">
|
||||
<text:p/>
|
||||
</draw:line>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
<draw:line text:anchor-type="page" text:anchor-page-number="1" draw:z-index="1" draw:style-name="gr1" draw:text-style-name="P35" svg:x1="1.199cm" svg:y1="9.601cm" svg:x2="0.7cm" svg:y2="9.601cm">
|
||||
<text:p/>
|
||||
</draw:line>
|
||||
<draw:line text:anchor-type="page" text:anchor-page-number="1" draw:z-index="2" draw:style-name="gr1" draw:text-style-name="P35" svg:x1="1.199cm" svg:y1="14.101cm" svg:x2="0.7cm" svg:y2="14.101cm">
|
||||
<text:p/>
|
||||
</draw:line>
|
||||
<!--<text:p text:style-name="P31"/>-->
|
||||
<text:p text:style-name="Seitenumbruch"/>
|
||||
<text:p text:style-name="P32"/>
|
||||
<text:p text:style-name="P32"><xsl:value-of select="mitarbeiter/name_gesamt" /></text:p>
|
||||
<text:p text:style-name="P32"><xsl:value-of select="mitarbeiter/anschrift" /></text:p>
|
||||
<text:p text:style-name="P32"><xsl:value-of select="mitarbeiter/plz" /><xsl:text> </xsl:text><xsl:value-of select="mitarbeiter/ort" /></text:p>
|
||||
<xsl:if test="string-length(mitarbeiter/zuhanden)!=0">
|
||||
<text:p text:style-name="P32"><xsl:value-of select="mitarbeiter/zuhanden" /></text:p>
|
||||
</xsl:if>
|
||||
<text:p text:style-name="P33"/>
|
||||
<text:p text:style-name="P34">Abs.: <text:s/>Technikum Wien GmbH, Höchstädtplatz 6, 1200 Wien </text:p>
|
||||
<text:p text:style-name="P33"/>
|
||||
<text:p text:style-name="P17"/>
|
||||
<text:p text:style-name="P17"/>
|
||||
<text:p text:style-name="P25">Lehrauftrag Lehrgang <xsl:value-of select="studiengang_bezeichnung" /><xsl:text> </xsl:text>
|
||||
<xsl:value-of select="studiensemester_kurzbz" /></text:p>
|
||||
<text:p text:style-name="P19"/>
|
||||
<text:p text:style-name="P21"><xsl:value-of select="mitarbeiter/name_gesamt" /></text:p>
|
||||
<text:p text:style-name="P19">SV.Nr.: <xsl:value-of select="mitarbeiter/svnr" /></text:p>
|
||||
<text:p text:style-name="P19">Personalnummer: <xsl:value-of select="mitarbeiter/personalnummer" /></text:p>
|
||||
<text:p text:style-name="P19"/>
|
||||
<text:p text:style-name="P19"/>
|
||||
<text:p text:style-name="P19">Wir beauftragen Sie, im <xsl:value-of select="studiensemester" /> folgende Lehrveranstaltungen abzuhalten:</text:p>
|
||||
<text:p text:style-name="P19"/>
|
||||
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
|
||||
<table:table-column table:style-name="Tabelle1.A"/>
|
||||
<table:table-column table:style-name="Tabelle1.B"/>
|
||||
<table:table-column table:style-name="Tabelle1.C"/>
|
||||
<table:table-column table:style-name="Tabelle1.D"/>
|
||||
<table:table-column table:style-name="Tabelle1.E"/>
|
||||
<table:table-column table:style-name="Tabelle1.F"/>
|
||||
<table:table-column table:style-name="Tabelle1.G"/>
|
||||
<table:table-row>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P12">ID</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Lehrveranstaltung</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Institut</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Gruppe<text:span text:style-name="T2">(n)</text:span>
|
||||
</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P13">Std.</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Satz</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Brutto</text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
|
||||
<xsl:apply-templates select="lehreinheit"/>
|
||||
|
||||
<table:table-row>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P1"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P1"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P1"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P11">Summe:</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P11"><xsl:value-of select="gesamtstunden" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P9"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
|
||||
<text:p text:style-name="P11">€ <xsl:value-of select="gesamtbetrag" /></text:p>
|
||||
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
</table:table>
|
||||
<text:p text:style-name="P19"/>
|
||||
<text:p text:style-name="P19">Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
|
||||
Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
|
||||
Außerdem besteht die Verpflichtung zur Teilnahme an LektorInnenkonferenzen.</text:p>
|
||||
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
|
||||
<table:table-column table:style-name="Tabelle2.A"/>
|
||||
<table:table-column table:style-name="Tabelle2.B"/>
|
||||
<table:table-column table:style-name="Tabelle2.C"/>
|
||||
<table:table-row table:style-name="Tabelle2.1">
|
||||
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
|
||||
<text:p text:style-name="P7">
|
||||
<draw:frame draw:style-name="fr2" draw:name="graphics4" text:anchor-type="char" svg:x="6.301cm" svg:y="-0.5cm" svg:width="2.2cm" svg:height="2.2cm" draw:z-index="3">
|
||||
<draw:image xlink:href="Pictures/100002010000015A0000015A8CD841D1.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
|
||||
</draw:frame>Wien, am <xsl:value-of select="datum" />
|
||||
</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle2.B1" office:value-type="string">
|
||||
<text:p text:style-name="P7"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
|
||||
<text:p text:style-name="P1"/>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
<table:table-row>
|
||||
<table:table-cell table:style-name="Tabelle2.B1" office:value-type="string">
|
||||
<text:p text:style-name="P7">Ort, Datum</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle2.B1" office:value-type="string">
|
||||
<text:p text:style-name="P7"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle2.B1" office:value-type="string">
|
||||
<text:p text:style-name="P8"><xsl:value-of select="studiengangsleiter" /></text:p>
|
||||
<text:p text:style-name="P7">Lehrgangsleitung</text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
</table:table>
|
||||
<text:p text:style-name="P20"/>
|
||||
</office:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="lehreinheit">
|
||||
<table:table-row>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P2"><xsl:value-of select="lehreinheit_id" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P2"><xsl:value-of select="lehrveranstaltung" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P2">
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length(fachbereich)>28">
|
||||
<xsl:value-of select="substring(fachbereich,0,25)" /><xsl:text>...</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="fachbereich" />
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
|
||||
<xsl:apply-templates select="gruppen_getrennt"/>
|
||||
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P2"><xsl:value-of select="satz" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<text:p text:style-name="P3">€ <xsl:value-of select="brutto" /></text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="gruppen_getrennt">
|
||||
<xsl:apply-templates select="einzelgruppe"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="einzelgruppe">
|
||||
<text:p text:style-name="P5"><xsl:value-of select="." /></text:p>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
Reference in New Issue
Block a user