GUI für Studiensemester und Studienjahr hinzugefügt

This commit is contained in:
alex
2017-08-01 14:50:19 +02:00
parent b7da7b86f9
commit afd1667645
16 changed files with 990 additions and 233 deletions
@@ -0,0 +1,140 @@
<?php
if (!defined("BASEPATH")) exit("No direct script access allowed");
class Studienjahr extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model("organisation/Studienjahr_model", "StudienjahrModel");
}
public function index()
{
$this->listStudienjahr();
}
public function listStudienjahr()
{
$studienjahr = $this->StudienjahrModel->load();
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
$data = array(
"studienjahr" => $studienjahr->retval
);
$this->load->view("organisation/studienjahr.php", $data);
}
public function editStudienjahr($studienjahr_kurzbez)
{
$studienjahr_kurzbez = str_replace("_", "/", $studienjahr_kurzbez);
$studienjahr = $this->StudienjahrModel->load($studienjahr_kurzbez);
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
$data = array(
"studienjahr" => $studienjahr->retval
);
$this->load->view("organisation/studienjahrEdit.php", $data);
}
public function newStudienjahr()
{
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
$allstudienjahrkurzbz = $this->StudienjahrModel->load();
if ($allstudienjahrkurzbz->error)
{
show_error($allstudienjahrkurzbz->retval);
}
$studienjahrkurzbz = $allstudienjahrkurzbz->retval[0]->studienjahr_kurzbz;
$years = $this->__getYearsFromStudienjahr($studienjahrkurzbz);
$data = array(
"studienjahrkurzbz" => ($years[0] + 1)."/".($years[1] + 1)
);
$this->load->view("organisation/studienjahrNew.php", $data);
}
private function __getYearsFromStudienjahr($studienjahr_kurzbez)
{
$firstyear = intval(substr($studienjahr_kurzbez, 0, 4));
$secondyear = intval(substr($studienjahr_kurzbez, 5, 2));
return array($firstyear, $secondyear);
}
public function insStudienjahr()
{
$data = $this->__retrieveStudienjahrData();
$studienjahr = $this->StudienjahrModel->insert($data);
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true"));
}
private function __retrieveStudienjahrData(){
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
$bezeichnung = $this->input->post("studienjahrbz");
$data = array(
"studienjahr_kurzbz" => $studienjahr_kurzbz,
"bezeichnung" => $bezeichnung,
);
$validation = $this->_validate($data);
if (isSuccess($validation))
{
return $data;
} else
{
show_error($validation->retval);
}
}
private function _validate($data)
{
$studienjahr_kurzbz = $data['studienjahr_kurzbz'];
$years = $this->__getYearsFromStudienjahr($studienjahr_kurzbz);
//if not desired form or second year comes not right after the first
$correctyears = $years[0] % 100 == $years[1] - 1;
if (!preg_match("/^\d{4}\/\d{2}$/", $studienjahr_kurzbz) || !$correctyears)
return error("Studienjahrbezeichnung muss folgende Form haben: Jahreszahl/letzeZweiZahlenDesNächstenJahres, z.B. 2017/18");
return success("Semesterdaten sind valide");
}
public function saveStudienjahr()
{
$data = $this->__retrieveStudienjahrData();
$studienjahr = $this->StudienjahrModel->update($data['studienjahr_kurzbz'], $data);
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true"));
}
public function deleteStudienjahr($studienjahr_kurzbez)
{
$studienjahr_kurzbez = str_replace("_", "/", $studienjahr_kurzbez);
$studienjahr = $this->StudienjahrModel->delete($studienjahr_kurzbez);
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
redirect("/organisation/studienjahr/listStudienjahr");
}
}
@@ -0,0 +1,166 @@
<?php
if (!defined("BASEPATH")) exit("No direct script access allowed");
/**
* Description of Semester
*
* @author root
*/
class Studiensemester extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model("organisation/Studiensemester_model", "StudiensemesterModel");
$this->load->model("organisation/Studienjahr_model", "StudienjahrModel");
}
public function index()
{
$this->listStudiensemester();
}
public function listStudiensemester()
{
$semester = $this->StudiensemesterModel->load();
if ($semester->error)
{
show_error($semester->retval);
}
$data = array(
"semester" => $semester->retval
);
$this->load->view("organisation/studiensemester.php", $data);
}
public function editStudiensemester($semester_kurzbez)
{
$semester = $this->StudiensemesterModel->load($semester_kurzbez);
if ($semester->error)
{
show_error($semester->retval);
}
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
$allstudienjahre = $this->StudienjahrModel->load();
if ($allstudienjahre->error)
{
show_error($allstudienjahre->retval);
}
$data = array(
"semester" => $semester->retval,
"allstudienjahre" => $allstudienjahre->retval
);
$this->load->view("organisation/studiensemesterEdit.php", $data);
}
public function newStudiensemester()
{
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
$allstudienjahre = $this->StudienjahrModel->load();
if ($allstudienjahre->error)
{
show_error($allstudienjahre->retval);
}
$data = array(
"allstudienjahre" => $allstudienjahre->retval
);
$this->load->view("organisation/studiensemesterNew.php", $data);
}
/**
* inserts a Studiensemester
* formats dates in english as required by database
*/
public function insStudiensemester()
{
$data = $this->__retrieveStudiensemesterData();
$semester = $this->StudiensemesterModel->insert($data);
if ($semester->error)
{
show_error($semester->retval);
}
redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true");
}
private function __retrieveStudiensemesterData()
{
$studiensemester_kurzbz = $this->input->post("semkurzbz");
$bezeichnung = $this->input->post("sembz");
$start = $this->input->post("semstart");
$ende = $this->input->post("semende");
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
$beschreibung = $this->input->post("beschreibung");
$onlinebewerbung = $this->input->post("onlinebewerbung");
$onlinebewerbung = isset($onlinebewerbung);
$data = array(
"studiensemester_kurzbz" => $studiensemester_kurzbz,
"bezeichnung" => $bezeichnung,
"start" => $start,
"ende" => $ende,
"studienjahr_kurzbz" => $studienjahr_kurzbz,
"beschreibung" => $beschreibung,
"onlinebewerbung" => $onlinebewerbung
);
$validation = $this->_validate($data);
if (isSuccess($validation))
{
//dateconversion
$data["start"] = date_format(date_create($start), "Y-m-d");
$data["ende"] = date_format(date_create($ende), "Y-m-d");
return $data;
} else
{
show_error($validation->retval);
}
}
private function _validate($data)
{
$datepattern = "/^\d{2}.\d{2}.\d{4}$/";
if (!preg_match("/^(WS|SS)\d{4}$/", $data['studiensemester_kurzbz']))
return error("Semesterkurzbezeichnung muss mit WS oder SS beginnen und mit einer Jahreszahl enden, z.B. SS2017");
if (!preg_match($datepattern, $data['start']))
return error("Falsches Startdatumsformat. Richtiges Format: dd.mm.yyyy");
if (!preg_match($datepattern, $data['ende']))
return error("Falsches Enddatumsformat. Richtiges Format: dd.mm.yyyy");
return success("Semesterdaten sind valide");
}
public function saveStudiensemester()
{
$data = $this->__retrieveStudiensemesterData();
$semester = $this->StudiensemesterModel->update($data['studiensemester_kurzbz'], $data);
if ($semester->error)
{
show_error($semester->retval);
}
redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true");
}
public function deleteStudiensemester($semester_kurzbez)
{
$semester = $this->StudiensemesterModel->delete($semester_kurzbez);
if ($semester->error)
{
show_error($semester->retval);
}
redirect("/organisation/studiensemester/listStudiensemester");
}
}
@@ -10,5 +10,6 @@ class Studienjahr_model extends DB_Model
parent::__construct();
$this->dbTable = 'public.tbl_studienjahr';
$this->pk = 'studienjahr_kurzbz';
$this->hasSequence = false;
}
}
@@ -10,6 +10,7 @@ class Studiensemester_model extends DB_Model
parent::__construct();
$this->dbTable = 'public.tbl_studiensemester';
$this->pk = 'studiensemester_kurzbz';
$this->hasSequence = false;
}
public function getLastOrAktSemester($days = 60)
@@ -0,0 +1,47 @@
<?php
$this->load->view('templates/header', array('title' => 'StudienjahrList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '2:{sorter:false}, 3:{sorter:false}', 'sortList' =>'0,1'));
?>
<body>
<div class="row">
<div class="span4">
<h2>Studienjahr</h2>
<a href="newStudienjahr/">
Neues Studienjahr anlegen
</a>
<table id="t1" class="tablesorter">
<thead>
<tr>
<th>Kurzbez</th>
<th>Bezeichnung</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<?php foreach ($studienjahr as $jahr):
$escapedstudienjahrkurzbz = str_replace("/", "_", $jahr->studienjahr_kurzbz);
?>
<tr>
<td><?php echo $jahr->studienjahr_kurzbz; ?></td>
<td><?php echo $jahr->bezeichnung; ?></td>
<td>
<a href="editStudienjahr/<?php echo $escapedstudienjahrkurzbz; ?>">
Bearbeiten
</a>
</td>
<td>
<a href="deleteStudienjahr/<?php echo $escapedstudienjahrkurzbz; ?>">
Löschen
</a>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
</div>
</body>
</html>
@@ -0,0 +1,20 @@
<?php
$jahr = $studienjahr[0];
$this->load->view('templates/header', array('title' => 'StudienjahrEdit', 'jquery' => true));
?>
<body>
<div class="row">
<div class="row">
<div class="span4">
<h2>Studienjahr bearbeiten: <?php echo $jahr->bezeichnung; ?></h2>
<form method="post" action="<?php echo APP_ROOT."index.ci.php/organisation/studienjahr/saveStudienjahr" ?>">
<table>
<?php include('studienjahrForm.php'); ?>
<input type="hidden" name="studienjahrkurzbz" value="<?php echo $jahr->studienjahr_kurzbz; ?>"/>
</form>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,49 @@
<?php
$bezeichnung = (isset($jahr->bezeichnung))?$jahr->bezeichnung:(isset($studienjahrkurzbz)?"Studienjahr ".$studienjahrkurzbz:"");
?>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2">
Bezeichnung:<br/><br/>
<input type="text" name="studienjahrbz" value="<?php echo $bezeichnung; ?>"/><br/>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td align="center">
<button type="submit">Speichern</button>
</td>
<td align="center">
<a href="<?php echo '../listStudienjahr'; ?>">
<button type="button">Zur Übersicht</button>
</a>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2" align="center">
<a href="<?php echo '../../studiensemester/listStudiensemester'; ?>">
<button type="button">Zur Semesterübersicht</button>
</a>
</td>
</tr>
</table>
<br />
<div class="input_ok"><?php if (isset($_GET['saved']) && $_GET['saved']) echo 'Studienjahr wurde gespeichert.'; ?></div>
<div class="input_error" id="errormessage"></div>
@@ -0,0 +1,40 @@
<?php
$this->load->view('templates/header', array('title' => 'StudienjahrNew', 'jqueryComposer' => true));
?>
<body>
<div class="row">
<div class="row">
<div class="span4">
<h2>Neues Studienjahr anlegen</h2>
<form method="post"
action="<?php echo APP_ROOT."index.ci.php/organisation/studienjahr/insStudienjahr"; ?>" id="newStudienjahrForm">
<table>
<tr>
<td colspan="2">
Kurzbezeichnung:<br/><br/>
<input type="text" name="studienjahrkurzbz" value="<?php echo $studienjahrkurzbz ?>"/><br/>
</td>
</tr>
<?php include('studienjahrForm.php'); ?>
</form>
</div>
</div>
</div>
<script>
$('#newStudienjahrForm').submit(function (event) {
var studienjahrkurzbez = $('input[name=studienjahrkurzbz]').val();
if (checkStudienjahrkurzbez(studienjahrkurzbez))return;
$('#errormessage').text("Studienjahrbezeichnung muss folgende Form haben: Jahreszahl/letzeZweiZahlenDesNächstenJahres, z.B. 2017/18");
event.preventDefault();
});
function checkStudienjahrkurzbez(semesterkurzbez) {
var firstyear = parseInt(semesterkurzbez.substr(2,2));
var secondyear = parseInt(semesterkurzbez.substr(5,2));
var pattern = /^\d{4}\/\d{2}$/;
return pattern.test(semesterkurzbez) && secondyear - firstyear === 1;
}
</script>
</body>
</html>
@@ -0,0 +1,55 @@
<?php
$this->load->view('templates/header', array('title' => 'StudiensemesterList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '7:{sorter:false}, 8:{sorter:false}', 'sortList' =>'4,1'));
?>
<body>
<div class="row">
<div class="span4">
<h2>Studiensemester</h2>
<a href="newStudiensemester/">
Neues Studiensemester anlegen
</a>
<table id="t1" class="tablesorter">
<thead>
<tr>
<th>Kurzbez</th>
<th>Bezeichnung</th>
<th>Start</th>
<th>Ende</th>
<th>Studienjahr</th>
<th>Beschreibung</th>
<th>Onlinebewerbung</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<?php foreach ($semester as $sem): ?>
<tr>
<td><?php echo $sem->studiensemester_kurzbz; ?></td>
<td><?php echo $sem->bezeichnung; ?></td>
<td><?php echo date_format(date_create($sem->start), "d.m.Y"); ?></td>
<td><?php echo date_format(date_create($sem->ende), "d.m.Y"); ?></td>
<td><?php echo $sem->studienjahr_kurzbz; ?></td>
<td><?php echo $sem->beschreibung; ?></td>
<td><?php echo ($sem->onlinebewerbung) ? "Ja" : "Nein"; ?></td>
<td>
<a href="editStudiensemester/<?php echo $sem->studiensemester_kurzbz; ?>">
Bearbeiten
</a>
</td>
<td>
<a href="deleteStudiensemester/<?php echo $sem->studiensemester_kurzbz; ?>">
Löschen
</a>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
</div>
</body>
</html>
@@ -0,0 +1,19 @@
<?php
$sem = $semester[0];
$this->load->view('templates/header', array('title' => 'StudiensemesterEdit', 'datepicker' => true, 'datepickerclass' => 'dateinput'));
?>
<body>
<div class="row">
<div class="row">
<div class="span4">
<h2>Studiensemester bearbeiten: <?php echo $sem->studiensemester_kurzbz; ?></h2>
<form method="post" action="<?php echo APP_ROOT."index.ci.php/organisation/studiensemester/saveStudiensemester" ?>">
<table>
<?php include('studiensemesterForm.php'); ?>
<input type="hidden" name="semkurzbz" value="<?php echo $sem->studiensemester_kurzbz; ?>"/>
</form>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,103 @@
<?php
$bezeichnung = (isset($sem->bezeichnung) ? $sem->bezeichnung : "");
$start = (isset($sem->start) ? date_format(date_create($sem->start), "d.m.Y") : "");
$ende = (isset($sem->ende) ? date_format(date_create($sem->ende), "d.m.Y") : "");
$studienjahr_kurzbz = (isset($sem->studienjahr_kurzbz) ? $sem->studienjahr_kurzbz : "");
$beschreibung = (isset($sem->beschreibung) ? $sem->beschreibung : "");
$onlinebewerbung = (isset($sem->onlinebewerbung) ? $sem->onlinebewerbung : "");
?>
<tr>
<td colspan="2">
Bezeichnung:<br/><br/>
<input type="text" name="sembz" value="<?php echo $bezeichnung; ?>"/><br/>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2">
Datum start:<br/><br/>
<input type="text" class="dateinput" name="semstart" value="<?php echo $start; ?>"/><br/>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2">
Datum ende:<br/><br/>
<input type="text" class="dateinput" name="semende" value="<?php echo $ende; ?>"/><br/>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2">
Studienjahr:<br/><br/>
<select name="studienjahrkurzbz">
<?php foreach ($allstudienjahre as $jahr): ?>
<option <?php if ($studienjahr_kurzbz == $jahr->studienjahr_kurzbz) echo 'selected' ?>
value="<?php echo $jahr->studienjahr_kurzbz ?>">
<?php echo $jahr->bezeichnung ?>
</option>
<?php endforeach ?>
</select>
<a href="<?php echo '../../studienjahr/newStudienjahr/'; ?>">
<button type="button">Neues Studienjahr</button>
</a>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2">
Beschreibung:<br/><br/>
<textarea name="beschreibung" rows="5" cols="33"><?php echo $beschreibung; ?></textarea>
<br/>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td>
Onlinebewerbung
<br/>
</td>
<td>
<input type="checkbox" name="onlinebewerbung" <?php if ($onlinebewerbung) echo 'checked' ?>/>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td align="center">
<button type="submit">Speichern</button>
</td>
<td align="center">
<a href="<?php echo '../listStudiensemester'; ?>">
<button type="button">Zur Übersicht</button>
</a>
</td>
</tr>
</table>
<br/>
<div class="input_ok"><?php if (isset($_GET['saved']) && $_GET['saved']) echo 'Studiensemester wurde gespeichert.'; ?></div>
<div class="input_error" id="errormessage"></div>
@@ -0,0 +1,79 @@
<?php
$this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jqueryComposer' => true, 'datepicker' => true, 'datepickerclass' => 'dateinput'));
?>
<body>
<div class="row">
<div class="row">
<div class="span4">
<h2>Neues Studiensemester anlegen</h2>
<form method="post"
action="<?php echo APP_ROOT."index.ci.php/organisation/studiensemester/insStudiensemester"; ?>"
id="newSemesterForm">
<table>
<tr>
<td colspan="2">
Kurzbezeichnung:<br/><br/>
<input type="text" name="semkurzbz" value=""/><br/>
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<?php include('studiensemesterForm.php'); ?>
</form>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('input[name=semkurzbz]').on(
'input',
function () {
var semesterkurzbez = $('input[name=semkurzbz]').val();
prefillYearFields(semesterkurzbez);
}
);
});
function prefillYearFields(semesterkurzbez) {
if (!checkSemesterkurzbez(semesterkurzbez))return;
var semester = semesterkurzbez.substr(0, 2);
var jahr = semesterkurzbez.substr(2, 6);
var wsssbezeichnung, jahrbez, studienjahr, start, ende = "";
if (semester == 'WS') {
wsssbezeichnung = "Wintersemester";
jahrbez = jahr + "/" + (parseInt(jahr) + 1);
studienjahr = jahr + "/" + (parseInt(jahr.substr(2, 4)) + 1);
start = "01.09." + jahr;
ende = "01.02." + (parseInt(jahr) + 1);
} else {
wsssbezeichnung = "Sommersemester";
jahrbez = jahr;
studienjahr = jahr + "/" + (parseInt(jahr.substr(2, 4)) - 1);
start = "01.02." + jahr;
ende = "01.08." + jahr;
}
var bezeichnung = wsssbezeichnung + " " + jahrbez;
$('input[name=sembz]').val(bezeichnung);
$('input[name=semstart]').val(start);
$('input[name=semende]').val(ende);
$('input[name=studienjahrkurzbz]').val(studienjahr);
}
$('#newSemesterForm').submit(function (event) {
var semesterkurzbez = $('input[name=semkurzbz]').val();
if (checkSemesterkurzbez(semesterkurzbez))return;
$('#errormessage').text("Semesterkurzbezeichnung muss mit WS oder SS beginnen und mit einer Jahreszahl enden, z.B. SS2017");
event.preventDefault();
});
function checkSemesterkurzbez(semesterkurzbez) {
var pattern = /^(WS|SS)\d{4}$/;
return pattern.test(semesterkurzbez);
}
</script>
</body>
</html>
+35
View File
@@ -3,6 +3,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
isset($title) ? $title = 'VileSci - '.$title : $title = 'VileSci';
!isset($jquery) ? $jquery = false : $jquery = $jquery;
!isset($jqueryComposer) ? $jqueryComposer = false : $jqueryComposer = $jqueryComposer;
!isset($jqueryui) ? $jqueryui = false : $jqueryui = $jqueryui;
!isset($jquery_checkboxes) ? $jquery_checkboxes = false : $jquery_checkboxes = $jquery_checkboxes;
!isset($jquery_custom) ? $jquery_custom = false : $jquery_custom = $jquery_custom;
!isset($tablesort) ? $tablesort = false : $tablesort = $tablesort;
@@ -13,9 +15,20 @@ isset($title) ? $title = 'VileSci - '.$title : $title = 'VileSci';
!isset($jsoneditor) ? $jsoneditor = false : $jsoneditor = $jsoneditor;
!isset($jsonforms) ? $jsonforms = false : $jsonforms = $jsonforms;
!isset($textile) ? $textile = false : $textile = $textile;
!isset($datepicker) ? $datepicker = false : $datepicker = $datepicker;
if ($tablesort || $jquery_checkboxes || $jquery_custom)
$jquery = true;
if($datepicker)
$jqueryui = true;
if($jqueryui)
$jqueryComposer = true;
if($jquery && $jqueryComposer)
show_error("Two JQuery versions used: composer and includefolderversion");
?>
<!DOCTYPE HTML>
<html>
@@ -32,6 +45,15 @@ if ($tablesort || $jquery_checkboxes || $jquery_custom)
<script type="text/javascript" src="<?php echo base_url('include/js/jquery1.9.min.js'); ?>"></script>
<?php endif ?>
<?php if($jqueryComposer) : ?>
<script type="text/javascript" src="<?php echo base_url('vendor/components/jquery/jquery.min.js'); ?>"></script>
<?php endif ?>
<?php if($jqueryui) : ?>
<script type="text/javascript" src="<?php echo base_url('vendor/components/jqueryui/jquery-ui.min.js'); ?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url('vendor/components/jqueryui/themes/base/jquery-ui.min.css'); ?>" />
<?php endif ?>
<?php if($jquery_checkboxes) : ?>
<script type="text/javascript" src="<?php echo base_url('include/js/jquery.checkboxes-1.0.7.min.js'); ?>"></script>
<?php endif ?>
@@ -53,6 +75,19 @@ if ($tablesort || $jquery_checkboxes || $jquery_custom)
});
</script>
<?php endif ?>
<?php if($datepicker && !empty($datepickerclass)) : ?>
<script language="Javascript" type="text/javascript">
$(document).ready(function()
{
$(".<?php echo $datepickerclass; ?>").datepicker(
{
dateFormat:"dd.mm.yy"
});
});
</script>
<?php endif ?>
<?php if($tinymce) : ?>
<script type="text/javascript" src="<?php echo base_url('vendor/tinymce/tinymce/tinymce.min.js');?>"></script>
<?php endif ?>
+1
View File
@@ -75,6 +75,7 @@
"rougin/combustor": "1.1.*",
"rougin/refinery": "*",
"components/jquery": "2.1.4",
"components/jqueryui": "1.12.*",
"components/angular.js": "1.3.16",
"components/bootstrap": "3.3.5",
"michelf/php-markdown": "1.5.0",
Generated
+232 -233
View File
@@ -4,59 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "adbc1b15e2cdf73d1f0db3727e919dc5",
"content-hash": "97bc2bdf8f101931b1f6eac635401324",
"content-hash": "eb5f2edc278196fd77c4de1f2e201dc0",
"packages": [
{
"name": "blueimp/jquery-file-upload",
"version": "v9.14.1",
"source": {
"type": "git",
"url": "https://github.com/vkhramtsov/jQuery-File-Upload.git",
"reference": "71d67a9c277e29efcf5935cd2409009c0f841a57"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/71d67a9c277e29efcf5935cd2409009c0f841a57",
"reference": "71d67a9c277e29efcf5935cd2409009c0f841a57",
"shasum": ""
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Sebastian Tschan",
"homepage": "https://blueimp.net"
}
],
"description": "File Upload widget for jQuery.",
"homepage": "https://github.com/blueimp/jQuery-File-Upload",
"keywords": [
"bootstrap",
"chunk",
"cross-domain",
"cross-site",
"drag",
"drop",
"file",
"gae",
"go",
"jquery",
"multiple",
"php",
"preview",
"progress",
"python",
"resume",
"selection",
"upload",
"widget"
],
"time": "2016-11-21 05:38:19"
},
{
"name": "codeigniter-restserver",
"version": "2.6",
@@ -98,7 +47,7 @@
],
"description": "The CodeIgniter framework",
"homepage": "https://codeigniter.com",
"time": "2016-10-28 15:13:14"
"time": "2016-10-28T15:13:14+00:00"
},
{
"name": "components/angular.js",
@@ -402,7 +351,7 @@
],
"description": "Shim repository for Angular.js",
"homepage": "http://angularjs.org",
"time": "2015-06-07 20:10:38"
"time": "2015-06-07T20:10:38+00:00"
},
{
"name": "components/bootstrap",
@@ -470,42 +419,7 @@
"responsive",
"web"
],
"time": "2015-06-17 06:08:09"
},
{
"name": "components/font-awesome",
"version": "4.7.0",
"source": {
"type": "git",
"url": "https://github.com/components/font-awesome.git",
"reference": "885308b939369d147bec93174722786bc2c4eedd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/components/font-awesome/zipball/885308b939369d147bec93174722786bc2c4eedd",
"reference": "885308b939369d147bec93174722786bc2c4eedd",
"shasum": ""
},
"type": "component",
"extra": {
"component": {
"styles": [
"css/font-awesome.css"
],
"files": [
"css/font-awesome.min.css",
"css/font-awesome.css.map",
"fonts/*"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT",
"OFL-1.1"
],
"description": "The iconic font designed for use with Twitter Bootstrap.",
"time": "2016-10-25 10:56:23"
"time": "2015-06-17T06:08:09+00:00"
},
{
"name": "components/jquery",
@@ -547,7 +461,7 @@
],
"description": "jQuery JavaScript Library",
"homepage": "http://jquery.com",
"time": "2015-05-08 05:04:47"
"time": "2015-05-08T05:04:47+00:00"
},
{
"name": "components/jqueryui",
@@ -632,61 +546,7 @@
}
],
"description": "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.",
"time": "2016-09-16 05:47:55"
},
{
"name": "compwright/codeigniter-installers",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/compwright/codeigniter-installers.git",
"reference": "adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/compwright/codeigniter-installers/zipball/adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f",
"reference": "adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f",
"shasum": ""
},
"require-dev": {
"composer/composer": "1.0.*@dev"
},
"type": "composer-installer",
"extra": {
"class": "Composer\\Installer\\CodeigniterInstaller"
},
"autoload": {
"psr-0": {
"Composer\\Installer": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jonathon Hill",
"email": "jhill9693@gmail.com",
"homepage": "http://jonathonhill.net",
"role": "Developer"
}
],
"description": "Composer installers for CodeIgniter",
"homepage": "https://github.com/compwright/codeigniter-installers",
"keywords": [
"MX",
"codeigniter",
"composer",
"core",
"hmvc",
"installer",
"library",
"module",
"spark",
"sparks"
],
"time": "2012-11-12 16:11:38"
"time": "2016-09-16T05:47:55+00:00"
},
{
"name": "easyrdf/easyrdf",
@@ -748,7 +608,7 @@
"rdfa",
"sparql"
],
"time": "2015-02-27 09:45:49"
"time": "2015-02-27T09:45:49+00:00"
},
{
"name": "fzaninotto/faker",
@@ -796,7 +656,7 @@
"faker",
"fixtures"
],
"time": "2016-04-29 12:21:54"
"time": "2016-04-29T12:21:54+00:00"
},
{
"name": "json-forms",
@@ -884,7 +744,7 @@
"json",
"schema"
],
"time": "2014-08-25 02:48:14"
"time": "2014-08-25T02:48:14+00:00"
},
{
"name": "kevinlebrun/colors.php",
@@ -935,7 +795,7 @@
"console",
"shell"
],
"time": "2016-04-12 20:58:34"
"time": "2016-04-12T20:58:34+00:00"
},
{
"name": "kingsquare/json-schema-form",
@@ -969,7 +829,7 @@
}
],
"description": "A framework-agnostic PHP Implementation for generating simple forms based on json-schema",
"time": "2014-07-10 12:27:19"
"time": "2014-07-10T12:27:19+00:00"
},
{
"name": "michelf/php-markdown",
@@ -1020,7 +880,7 @@
"keywords": [
"markdown"
],
"time": "2015-03-01 12:03:08"
"time": "2015-03-01T12:03:08+00:00"
},
{
"name": "ml/iri",
@@ -1067,7 +927,7 @@
"uri",
"url"
],
"time": "2014-01-21 13:43:39"
"time": "2014-01-21T13:43:39+00:00"
},
{
"name": "ml/json-ld",
@@ -1116,7 +976,7 @@
"JSON-LD",
"jsonld"
],
"time": "2016-10-10 08:57:56"
"time": "2016-10-10T08:57:56+00:00"
},
{
"name": "netcarver/textile",
@@ -1169,7 +1029,7 @@
"plaintext",
"textile"
],
"time": "2016-11-17 14:18:12"
"time": "2016-11-17T14:18:12+00:00"
},
{
"name": "psr/log",
@@ -1216,7 +1076,7 @@
"psr",
"psr-3"
],
"time": "2016-10-10 12:19:37"
"time": "2016-10-10T12:19:37+00:00"
},
{
"name": "rdlowrey/auryn",
@@ -1277,64 +1137,7 @@
"dic",
"ioc"
],
"time": "2016-03-14 20:10:19"
},
{
"name": "rogeriopradoj/codeigniter-curl",
"version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/rogeriopradoj/codeigniter-curl.git",
"reference": "eb954890e242a5e80812006e60b07f1ce29b7e7a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rogeriopradoj/codeigniter-curl/zipball/eb954890e242a5e80812006e60b07f1ce29b7e7a",
"reference": "eb954890e242a5e80812006e60b07f1ce29b7e7a",
"shasum": ""
},
"require": {
"compwright/codeigniter-installers": "*"
},
"type": "codeigniter-spark",
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "Rogerio Prado de Jesus",
"email": "rogeriopradoj@gmail.com"
}
],
"description": "codeigniter-curl philsturgeon's library via composer",
"time": "2013-05-27 21:19:21"
},
{
"name": "rogeriopradoj/codeigniter-restclient",
"version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/rogeriopradoj/codeigniter-restclient.git",
"reference": "64991a0105c3cd891a64e1d35e497270ca2b0d78"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rogeriopradoj/codeigniter-restclient/zipball/64991a0105c3cd891a64e1d35e497270ca2b0d78",
"reference": "64991a0105c3cd891a64e1d35e497270ca2b0d78",
"shasum": ""
},
"require": {
"compwright/codeigniter-installers": "*",
"rogeriopradoj/codeigniter-curl": "*"
},
"type": "codeigniter-spark",
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "Rogerio Prado de Jesus",
"email": "rogeriopradoj@gmail.com"
}
],
"description": "codeigniter-restclient philsturgeon's library via composer",
"time": "2013-05-27 21:23:54"
"time": "2016-03-14T20:10:19+00:00"
},
{
"name": "rougin/blueprint",
@@ -1385,7 +1188,7 @@
"php",
"template"
],
"time": "2016-02-01 16:31:13"
"time": "2016-02-01T16:31:13+00:00"
},
{
"name": "rougin/combustor",
@@ -1450,7 +1253,7 @@
"generator",
"php"
],
"time": "2016-02-14 10:36:58"
"time": "2016-02-14T10:36:58+00:00"
},
{
"name": "rougin/describe",
@@ -1503,7 +1306,7 @@
"describe",
"php"
],
"time": "2016-03-24 18:17:47"
"time": "2016-03-24T18:17:47+00:00"
},
{
"name": "rougin/refinery",
@@ -1568,7 +1371,7 @@
"php",
"refinery"
],
"time": "2016-03-04 16:55:32"
"time": "2016-03-04T16:55:32+00:00"
},
{
"name": "rougin/spark-plug",
@@ -1627,7 +1430,7 @@
"php",
"spark-plug"
],
"time": "2015-10-23 08:27:10"
"time": "2015-10-23T08:27:10+00:00"
},
{
"name": "symfony/console",
@@ -1688,7 +1491,7 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2016-11-15 23:02:12"
"time": "2016-11-15T23:02:12+00:00"
},
{
"name": "symfony/debug",
@@ -1745,7 +1548,7 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
"time": "2016-07-30 07:22:48"
"time": "2016-07-30T07:22:48+00:00"
},
{
"name": "symfony/polyfill-mbstring",
@@ -1804,7 +1607,7 @@
"portable",
"shim"
],
"time": "2016-11-14 01:06:16"
"time": "2016-11-14T01:06:16+00:00"
},
{
"name": "symfony/yaml",
@@ -1853,7 +1656,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2016-11-14 16:15:57"
"time": "2016-11-14T16:15:57+00:00"
},
{
"name": "tinymce/tinymce",
@@ -1899,7 +1702,7 @@
"tinymce",
"wysiwyg"
],
"time": "2016-11-23 13:00:08"
"time": "2016-11-23T13:00:08+00:00"
},
{
"name": "twig/twig",
@@ -1960,7 +1763,7 @@
"keywords": [
"templating"
],
"time": "2016-11-23 18:41:40"
"time": "2016-11-23T18:41:40+00:00"
},
{
"name": "wikimedia/composer-merge-plugin",
@@ -2009,7 +1812,7 @@
}
],
"description": "Composer plugin to merge multiple composer.json files",
"time": "2016-03-08 17:11:37"
"time": "2016-03-08T17:11:37+00:00"
},
{
"name": "zetacomponents/base",
@@ -2072,7 +1875,7 @@
],
"description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.",
"homepage": "https://github.com/zetacomponents",
"time": "2014-09-19 03:28:34"
"time": "2014-09-19T03:28:34+00:00"
},
{
"name": "zetacomponents/database",
@@ -2147,7 +1950,7 @@
],
"description": "A lightweight database layer on top of PHP's PDO that allows you to utilize a database without having to take care of differences in SQL dialects.",
"homepage": "https://github.com/zetacomponents",
"time": "2014-09-27 19:26:09"
"time": "2014-09-27T19:26:09+00:00"
},
{
"name": "zetacomponents/document",
@@ -2198,7 +2001,7 @@
],
"description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.",
"homepage": "https://github.com/zetacomponents",
"time": "2013-12-19 11:40:00"
"time": "2013-12-19T11:40:00+00:00"
},
{
"name": "zetacomponents/workflow",
@@ -2264,7 +2067,7 @@
],
"description": "The purpose of the Workflow component is to provide the core functionality of an activity-based workflow system including the definition and execution of workflow specifications.",
"homepage": "https://github.com/zetacomponents",
"time": "2014-09-27 19:26:10"
"time": "2014-09-27T19:26:10+00:00"
},
{
"name": "zetacomponents/workflow-database-tiein",
@@ -2331,7 +2134,7 @@
],
"description": "Contains the database backend for the Workflow component.",
"homepage": "https://github.com/zetacomponents",
"time": "2014-09-27 19:26:10"
"time": "2014-09-27T19:26:10+00:00"
},
{
"name": "zetacomponents/workflow-event-log-tiein",
@@ -2391,10 +2194,206 @@
],
"description": "Contains the EventLog listener for the Workflow component.",
"homepage": "https://github.com/zetacomponents",
"time": "2007-12-17 09:04:44"
"time": "2007-12-17T09:04:44+00:00"
}
],
"packages-dev": [
{
"name": "blueimp/jquery-file-upload",
"version": "v9.14.1",
"source": {
"type": "git",
"url": "https://github.com/vkhramtsov/jQuery-File-Upload.git",
"reference": "71d67a9c277e29efcf5935cd2409009c0f841a57"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/71d67a9c277e29efcf5935cd2409009c0f841a57",
"reference": "71d67a9c277e29efcf5935cd2409009c0f841a57",
"shasum": ""
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Sebastian Tschan",
"homepage": "https://blueimp.net"
}
],
"description": "File Upload widget for jQuery.",
"homepage": "https://github.com/blueimp/jQuery-File-Upload",
"keywords": [
"bootstrap",
"chunk",
"cross-domain",
"cross-site",
"drag",
"drop",
"file",
"gae",
"go",
"jquery",
"multiple",
"php",
"preview",
"progress",
"python",
"resume",
"selection",
"upload",
"widget"
],
"time": "2016-11-21T05:38:19+00:00"
},
{
"name": "components/font-awesome",
"version": "4.7.0",
"source": {
"type": "git",
"url": "https://github.com/components/font-awesome.git",
"reference": "885308b939369d147bec93174722786bc2c4eedd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/components/font-awesome/zipball/885308b939369d147bec93174722786bc2c4eedd",
"reference": "885308b939369d147bec93174722786bc2c4eedd",
"shasum": ""
},
"type": "component",
"extra": {
"component": {
"styles": [
"css/font-awesome.css"
],
"files": [
"css/font-awesome.min.css",
"css/font-awesome.css.map",
"fonts/*"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT",
"OFL-1.1"
],
"description": "The iconic font designed for use with Twitter Bootstrap.",
"time": "2016-10-25T10:56:23+00:00"
},
{
"name": "compwright/codeigniter-installers",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/compwright/codeigniter-installers.git",
"reference": "adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/compwright/codeigniter-installers/zipball/adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f",
"reference": "adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f",
"shasum": ""
},
"require-dev": {
"composer/composer": "1.0.*@dev"
},
"type": "composer-installer",
"extra": {
"class": "Composer\\Installer\\CodeigniterInstaller"
},
"autoload": {
"psr-0": {
"Composer\\Installer": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jonathon Hill",
"email": "jhill9693@gmail.com",
"homepage": "http://jonathonhill.net",
"role": "Developer"
}
],
"description": "Composer installers for CodeIgniter",
"homepage": "https://github.com/compwright/codeigniter-installers",
"keywords": [
"MX",
"codeigniter",
"composer",
"core",
"hmvc",
"installer",
"library",
"module",
"spark",
"sparks"
],
"time": "2012-11-12T16:11:38+00:00"
},
{
"name": "rogeriopradoj/codeigniter-curl",
"version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/rogeriopradoj/codeigniter-curl.git",
"reference": "eb954890e242a5e80812006e60b07f1ce29b7e7a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rogeriopradoj/codeigniter-curl/zipball/eb954890e242a5e80812006e60b07f1ce29b7e7a",
"reference": "eb954890e242a5e80812006e60b07f1ce29b7e7a",
"shasum": ""
},
"require": {
"compwright/codeigniter-installers": "*"
},
"type": "codeigniter-spark",
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "Rogerio Prado de Jesus",
"email": "rogeriopradoj@gmail.com"
}
],
"description": "codeigniter-curl philsturgeon's library via composer",
"time": "2013-05-27T21:19:21+00:00"
},
{
"name": "rogeriopradoj/codeigniter-restclient",
"version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/rogeriopradoj/codeigniter-restclient.git",
"reference": "64991a0105c3cd891a64e1d35e497270ca2b0d78"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rogeriopradoj/codeigniter-restclient/zipball/64991a0105c3cd891a64e1d35e497270ca2b0d78",
"reference": "64991a0105c3cd891a64e1d35e497270ca2b0d78",
"shasum": ""
},
"require": {
"compwright/codeigniter-installers": "*",
"rogeriopradoj/codeigniter-curl": "*"
},
"type": "codeigniter-spark",
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "Rogerio Prado de Jesus",
"email": "rogeriopradoj@gmail.com"
}
],
"description": "codeigniter-restclient philsturgeon's library via composer",
"time": "2013-05-27T21:23:54+00:00"
},
{
"name": "squizlabs/php_codesniffer",
"version": "2.7.1",
@@ -2471,7 +2470,7 @@
"phpcs",
"standards"
],
"time": "2016-11-30 04:02:31"
"time": "2016-11-30T04:02:31+00:00"
}
],
"aliases": [],
+2
View File
@@ -168,6 +168,8 @@ $menu=array
'Service'=>array('name'=>'Service', 'link'=>'stammdaten/service_frameset.html', 'target'=>'main','permissions'=>array('basis/service')),
'Dokumentvorlagen'=>array('name'=>'Dokumentvorlagen', 'link'=>'stammdaten/dokumentvorlagen_verwaltung.php', 'target'=>'main','permissions'=>array('basis/dokumente')),
'GSProgramm'=>array('name'=>'GSProgramm', 'link'=>'stammdaten/gsprogramm.php', 'target'=>'main','permissions'=>array('inout/uebersicht')),
'Studiensemester'=>array('name'=>'Studiensemester', 'link'=>'../index.ci.php/organisation/studiensemester/listStudiensemester', 'target'=>'main','permissions'=>array('admin')),
'Studienjahr'=>array('name'=>'Studienjahr', 'link'=>'../index.ci.php/organisation/studienjahr/listStudienjahr', 'target'=>'main','permissions'=>array('admin')),
'FH Ausweis'=>array
(
'name'=>'FH Ausweis','permissions'=>array('basis/fhausweis'),