Merge branch 'master' into permissions

This commit is contained in:
Paolo
2018-04-18 17:35:33 +02:00
93 changed files with 6590 additions and 4328 deletions
@@ -1,4 +1,5 @@
<form method="post" action="#" id="notizform">
<input type="hidden" name="hiddenNotizId" value="">
<div class="form-group">
<div class="text-center">
<label>Notiz hinzuf&uuml;gen</label>
@@ -19,6 +20,8 @@
<textarea name="notiz" class="form-control" rows="10" cols="32"></textarea>
</div>
<div class="text-right">
<!--abbrechen-button only shown when notice is clicked to be changed-->
<button type="reset" class="btn btn-default" style="display: none">Abbrechen</button>
<button type="submit" class="btn btn-default">Speichern</button>
</div>
</div>
+69 -5
View File
@@ -9,10 +9,12 @@
p.vorname AS "Vorname",
p.nachname AS "Nachname",
p.gebdatum AS "Gebdatum",
p.staatsbuergerschaft AS "Nation",
(
SELECT zeitpunkt
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
@@ -21,6 +23,7 @@
SELECT insertvon
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
@@ -79,15 +82,17 @@
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
LIMIT 1
) AS "AnzahlAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
JOIN lehre.tbl_studienplan using (studienplan_id)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
@@ -98,9 +103,53 @@
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
LIMIT 1
),\', \'
) AS "StgAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
JOIN lehre.tbl_studienplan using (studienplan_id)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NULL)
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
LIMIT 1
),\', \'
) AS "StgNichtAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
JOIN lehre.tbl_studienplan using (studienplan_id)
WHERE pss.status_kurzbz in (\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\')
AND (pss.bewerbung_abgeschicktamum IS NULL)
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE start >= NOW()
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
LIMIT 1
),\', \'
) AS "StgAktiv",
pl.zeitpunkt AS "LockDate",
pl.lockuser as "LockUser"
FROM public.tbl_person p
@@ -141,14 +190,17 @@
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array(
'PersonID','Vorname','Nachname','GebDatum','Letzte Aktion','Letzter Bearbeiter',
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'
'PersonID', 'Vorname', 'Nachname',
'GebDatum', 'Nation', 'Letzte Aktion',
'Letzter Bearbeiter', 'StSem', 'GesendetAm',
'NumAbgeschickt', 'StgSent', 'StgNotSent',
'StgAktiv', 'Sperrdatum', 'GesperrtVon'
),
'formatRaw' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
'<a href="%s%s">Details</a>',
base_url('index.ci.php/system/infocenter/InfoCenter/showDetails/'),
site_url('system/infocenter/InfoCenter/showDetails/'),
$datasetRaw->{'PersonId'}
);
@@ -187,7 +239,19 @@
if ($datasetRaw->{'StgAbgeschickt'} == null)
{
$datasetRaw->{'StgAbgeschickt'} = 'N/A';
$datasetRaw->{'StgAbgeschickt'} = '-';
}
if ($datasetRaw->{'StgNichtAbgeschickt'} == null)
{
$datasetRaw->{'StgNichtAbgeschickt'} = '-';
}
if ($datasetRaw->{'StgAktiv'} == null)
{
$datasetRaw->{'StgAktiv'} = '-';
}
if ($datasetRaw->{'Nation'} == null)
{
$datasetRaw->{'Nation'} = '-';
}
return $datasetRaw;
@@ -0,0 +1,264 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Info Center',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'customCSSs' => 'skin/tablesort_bootstrap.css',
'customJSs' => array('include/js/bootstrapper.js', 'include/js/infocenter/infocenterPersonDataset.js')
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">Freigegebene Interessenten</h3>
</div>
</div>
<div>
<?php
$APP = 'infocenter';
$NOTBEFORE = '2018-03-01 18:00:00';
$filterWidgetArray = array(
'query' => '
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
p.nachname AS "Nachname",
p.gebdatum AS "Gebdatum",
p.staatsbuergerschaft AS "Nation",
(
SELECT zeitpunkt
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
) AS "LastAction",
(
SELECT insertvon
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
) AS "User/Operator",
(
SELECT
pss.studiensemester_kurzbz
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "Studiensemester",
(
SELECT pss.bewerbung_abgeschicktamum
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "SendDate",
(
SELECT count(*)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
LIMIT 1
) AS "AnzahlAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
LIMIT 1
),\', \'
) AS "StgAbgeschickt",
pl.zeitpunkt AS "LockDate",
pl.lockuser as "LockUser"
FROM public.tbl_person p
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
WHERE
EXISTS(
SELECT 1
FROM
public.tbl_prestudent
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
person_id=p.person_id
AND tbl_studiengang.typ in(\'b\')
AND \'Interessent\' = (SELECT status_kurzbz FROM public.tbl_prestudentstatus
WHERE prestudent_id=tbl_prestudent.prestudent_id
ORDER BY datum DESC, insertamum DESC, ext_id DESC
LIMIT 1
)
AND EXISTS (
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = \'Interessent\'
AND (bestaetigtam IS NOT NULL AND (bewerbung_abgeschicktamum is null OR bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\'))
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
)
)
ORDER BY "LastAction" ASC
',
'hideHeader' => false,
'hideSave' => false,
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation','Letzte Aktion','Letzter Bearbeiter',
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
'formatRaw' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
'<a href="%s%s">Details</a>',
base_url('index.ci.php/system/infocenter/InfoCenter/showDetails/'),
$datasetRaw->{'PersonId'}
);
if ($datasetRaw->{'SendDate'} == null)
{
$datasetRaw->{'SendDate'} = 'Not sent';
}
else
{
$datasetRaw->{'SendDate'} = date_format(date_create($datasetRaw->{'SendDate'}),'Y-m-d H:i');
}
if ($datasetRaw->{'LastAction'} == null)
{
$datasetRaw->{'LastAction'} = '-';
}
else
{
$datasetRaw->{'LastAction'} = date_format(date_create($datasetRaw->{'LastAction'}),'Y-m-d H:i');
}
if ($datasetRaw->{'User/Operator'} == '')
{
$datasetRaw->{'User/Operator'} = 'NA';
}
if ($datasetRaw->{'LockDate'} == null)
{
$datasetRaw->{'LockDate'} = '-';
}
if ($datasetRaw->{'LockUser'} == null)
{
$datasetRaw->{'LockUser'} = '-';
}
if ($datasetRaw->{'StgAbgeschickt'} == null)
{
$datasetRaw->{'StgAbgeschickt'} = 'N/A';
}
if ($datasetRaw->{'Nation'} == null)
{
$datasetRaw->{'Nation'} = '-';
}
return $datasetRaw;
},
'markRow' => function($datasetRaw) {
if ($datasetRaw->LockDate != null)
{
return FilterWidget::DEFAULT_MARK_ROW_CLASS;
}
}
);
$filterId = isset($_GET[InfoCenter::FILTER_ID]) ? $_GET[InfoCenter::FILTER_ID] : null;
if (isset($filterId) && is_numeric($filterId))
{
$filterWidgetArray[InfoCenter::FILTER_ID] = $filterId;
}
else
{
$filterWidgetArray['app'] = $APP;
$filterWidgetArray['datasetName'] = 'PersonActions';
$filterWidgetArray['filterKurzbz'] = 'InfoCenterNotSentApplicationAll';
}
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
?>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
+19 -18
View File
@@ -1,19 +1,20 @@
<table id="notiztable" class="table table-bordered table-hover">
<thead>
<tr>
<th>Datum</th>
<th>Notiz</th>
<th>User</th>
</tr>
</thead>
<tbody>
<?php foreach ($notizen as $notiz): ?>
<tr data-toggle="tooltip"
title="<?php echo isset($notiz->text) ? strip_tags($notiz->text) : '' ?>">
<td><?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?></td>
<td><?php echo html_escape($notiz->titel) ?></td>
<td><?php echo $notiz->verfasser_uid ?></td>
</tr>
<?php endforeach ?>
</tbody>
<table id="notiztable" class="table table-bordered table-hover">
<thead>
<tr>
<th>Datum</th>
<th>Notiz</th>
<th>User</th>
</tr>
</thead>
<tbody>
<?php foreach ($notizen as $notiz): ?>
<tr data-toggle="tooltip"
title="<?php echo isset($notiz->text) ? strip_tags($notiz->text) : '' ?>">
<td><?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?></td>
<td><?php echo html_escape($notiz->titel) ?></td>
<td><?php echo $notiz->verfasser_uid ?></td>
<td style="display: none"><?php echo $notiz->notiz_id ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
@@ -287,10 +287,25 @@
</div>
</div><!-- /.column-absage -->
<div class="col-lg-6 text-right">
<?php
$disabled = $disabledTxt = '';
if (empty($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
{
$disabled = 'disabled';
$disabledTxt = 'Die Bewerbung muss erst abgeschickt worden sein.';
}
if ($zgvpruefung->studiengangtyp !== 'b')
{
$disabled = 'disabled';
$disabledTxt = 'Nur Bachelorstudiengänge können freigegeben werden.';;
}
?>
<div>
<button type="button" class="btn btn-default"
<button type="button" class="btn btn-default" <?php echo $disabled ?>
data-toggle="modal"
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>">
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>"
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
Freigabe an Studiengang
</button>
</div>
@@ -65,10 +65,6 @@
</code><br/>
<a href="https://warpedvisions.org/projects/textile-cheat-sheet/" target="_blank">Textile CheatSheet</a>
</td></tr>
<?php
// This is an example to show that you can load stuff from inside the template file
//echo $this->widgetlib->widget("tinymce_widget", array('name' => 'text', 'text' => $text));
?>
<tr><td colspan="2" align="right"><button type="submit">Save</button></td></tr>
</table>
</form>
@@ -77,34 +73,29 @@
</div>
<script>
<script>
$(document).ready(function () {
initTextile();
});
$(document).ready(function () {
initTextile();
});
function initTextile() {
var $content = $('#markitup'); // my textarea
var $preview = $('#textile-preview'); // the preview div
function initTextile() {
var $content = $('#markitup'); // my textarea
var $preview = $('#textile-preview'); // the preview div
//$content.markItUp(); // init markitup
// use a simple timer to check if the textarea content has changed
var value = $content.val();
$preview.html(textile.parse(value));
setInterval(function () {
var newValue = $content.val();
if (value != newValue) {
value = newValue;
$preview.html(textile.parse(newValue)); // convert the textile to html
}
}, 500);
};
// use a simple timer to check if the textarea content has changed
var value = $content.val();
$preview.html(textile.parse(value));
setInterval(function () {
var newValue = $content.val();
if (value != newValue) {
value = newValue;
$preview.html(textile.parse(newValue)); // convert the textile to html
}
}, 500);
};
</script>
</script>
<!--
<iframe name="TemplatePreview" width="100%" src=""/>
-->
</body>
</body>
</html>
@@ -4,16 +4,6 @@
<div class="row">
<div class="span4">
<h2>Phrasen</h2>
<!--
<form method="post" action="">
App: aufnahme
<?php
// This is an example to show that you can load stuff from inside the template file
//echo $this->widgetlib->widget("mimetype_widget", array('mimetype' => $mimetype));
?>
<button type="submit">Filter</button>
</form>
-->
<table id="t1" class="tablesorter">
<thead>
<tr><th class='table-sortable:default'>ID</th>
+57 -26
View File
@@ -2,6 +2,11 @@
if (! defined('BASEPATH')) exit('No direct script access allowed');
// Retrives the URL path of the called controller + controller method
// NOTE: placed here because it doesn't work inside functions
$calledPath = $this->router->directory.$this->router->class;
$calledMethod = $this->router->method;
// By default set the parameters to null
$title = isset($title) ? $title : null;
$customCSSs = isset($customCSSs) ? $customCSSs : null;
@@ -55,6 +60,27 @@ function _generateCSSsInclude($CSSs)
}
}
/**
* Generates global JS-Object to pass parms to other javascripts
*/
function _generateJSDataStorageObject($calledPath, $calledMethod)
{
$toPrint = "\n";
$toPrint .= '<script type="text/javascript">';
$toPrint .= '
var FHC_JS_DATA_STORAGE_OBJECT = {
app_root: "'.APP_ROOT.'",
ci_router: "index.ci.php",
called_path: "'.$calledPath.'",
called_method: "'.$calledMethod.'"
};';
$toPrint .= "\n";
$toPrint .= '</script>';
$toPrint .= "\n\n";
echo $toPrint;
}
/**
* Generates tags for the javascripts you want to include, the parameter could by a string or an array of strings
*/
@@ -78,13 +104,25 @@ function _generateJSsInclude($JSs)
}
/**
* Generates global JS-Object to pass parms to addon-js-functions
* Generates all the includes needed by the Addons
*/
function _generateAddonDataStorageObject()
function _generateAddonsJSsInclude($calledFrom)
{
echo '<script type="text/javascript">';
echo 'var FHC_ADDON_DATA_STORAGE_OBJECT = {app_root:"'.APP_ROOT.'"};';
echo "</script>\n";
$aktive_addons = array_filter(explode(";", ACTIVE_ADDONS));
foreach ($aktive_addons as $addon)
{
$hookfile = DOC_ROOT.'addons/'.$addon.'/hooks.config.inc.php';
if (file_exists($hookfile))
{
include($hookfile);
if (key_exists($calledFrom, $js_hooks))
{
foreach ($js_hooks[$calledFrom] as $js_file)
_generateJSsInclude('addons/'.$addon.'/'.$js_file);
}
}
}
}
?>
@@ -102,16 +140,20 @@ function _generateAddonDataStorageObject()
// jQuery UI CSS
if ($jqueryui === true) _generateCSSsInclude('vendor/components/jqueryui/themes/base/jquery-ui.min.css');
// bootstrap CSS
if ($bootstrap === true) _generateCSSsInclude('vendor/twbs/bootstrap/dist/css/bootstrap.min.css');
// font awesome CSS
if ($fontawesome === true) _generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css');
// Table sorter CSS
if ($tablesorter === true)
{
_generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
_generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
}
// sb admin template CSS
if ($sbadmintemplate === true)
{
@@ -125,8 +167,13 @@ function _generateAddonDataStorageObject()
// --------------------------------------------------------------------------------------------------------
// Javascripts
// Generates the global object to pass useful parms to the other javascripts
// NOTE: must be called before any other JS include
_generateJSDataStorageObject($calledPath, $calledMethod);
// JQuery V3
if ($jquery === true) _generateJSsInclude('vendor/components/jquery/jquery.min.js');
// JQuery UI
if ($jqueryui === true)
{
@@ -134,8 +181,10 @@ function _generateAddonDataStorageObject()
//datepicker german language file
_generateJSsInclude('vendor/components/jqueryui/ui/i18n/datepicker-de.js');
}
// bootstrap JS
if ($bootstrap === true) _generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
// Table sorter JS
if ($tablesorter === true)
{
@@ -143,6 +192,7 @@ function _generateAddonDataStorageObject()
_generateJSsInclude('vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js');
_generateJSsInclude('vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js');
}
//tinymce JS
if($tinymce === true) _generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js') ;
@@ -153,27 +203,8 @@ function _generateAddonDataStorageObject()
_generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js');
}
// load addon hooks JS
if ($addons === true)
{
_generateAddonDataStorageObject();
$aktive_addons = array_filter(explode(";", ACTIVE_ADDONS));
$called_from = $this->router->directory.$this->router->class.'/'.$this->router->method;
foreach ($aktive_addons as $addon)
{
$hookfile = DOC_ROOT.'addons/'.$addon.'/hooks.config.inc.php';
if (file_exists($hookfile))
{
include($hookfile);
if (key_exists($called_from, $js_hooks))
{
foreach ($js_hooks[$called_from] as $js_file)
_generateJSsInclude('addons/'.$addon.'/'.$js_file);
}
}
}
}
// Load addon hooks JS
if ($addons === true) _generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
// Eventually required JS
_generateJSsInclude($customJSs);
@@ -8,42 +8,63 @@
<br><br>
<table style="font-size:small">
<tbody>
<tr>
<td><b>Studiengang</b></td>
<td>{studiengangbez}&nbsp;{studiengangtypbez} {orgform} {sprache}</td>
</tr>
<tr>
<td><b>Studiensemester</b></td>
<td>{studiensemester}</td>
</tr>
<tr>
<td><b>Geschlecht</b></td>
<td>{geschlecht}</td>
</tr>
<tr>
<td><b>Vorname</b></td>
<td>{vorname}</td>
</tr>
<tr>
<td><b>Nachname</b></td>
<td>{nachname}</td>
</tr>
<tr>
<td><b>Geburtsdatum</b></td>
<td>{gebdatum}</td>
</tr>
<tr>
<td><b>E-Mail Adresse</b></td>
<td>{mailadresse}</td>
</tr>
<tr>
<td><b>Prestudent ID</b></td>
<td>{prestudentid}</td>
</tr>
<tr>
<td valign="top"><b>Anmerkungen zur Bewerbung</b></td>
<td>{notizentext}</td>
</tr>
<tr>
<td><b>Studiengang</b></td>
<td>{studiengangbez}&nbsp;{studiengangtypbez} {orgform} {sprache}</td>
</tr>
<tr>
<td><b>Studiensemester</b></td>
<td>{studiensemester}</td>
</tr>
<tr>
<td><b>Geschlecht</b></td>
<td>{geschlecht}</td>
</tr>
<tr>
<td><b>Vorname</b></td>
<td>{vorname}</td>
</tr>
<tr>
<td><b>Nachname</b></td>
<td>{nachname}</td>
</tr>
<tr>
<td><b>Geburtsdatum</b></td>
<td>{gebdatum}</td>
</tr>
<tr>
<td><b>E-Mail Adresse</b></td>
<td>{mailadresse}</td>
</tr>
<tr>
<td><b>Prestudent ID</b></td>
<td>{prestudentid}</td>
</tr>
<tr>
<td><b>Zugangsvoraussetzung</b></td>
<td>{zgvbez}{zgvort}{zgvnation}{zgvdatum}</td>
</tr>
<tr>
<td valign="top"><b>Erbrachte Dokumente</b></td>
<td>
{dokumente}
{dokument_bezeichnung}
{/dokumente}
</td>
</tr>
<tr>
<td valign="top"><b>Nachzureichende Dokumente</b></td>
<td>
{dokumente_nachgereicht}
{dokument_bezeichnung}{anmerkung}{nachgereicht_am}
<br>
{/dokumente_nachgereicht}
</td>
</tr>
<tr>
<td valign="top"><b>Anmerkungen zur Bewerbung</b></td>
<td>{notizentext}</td>
</tr>
</tbody>
</table>
<br>
+30 -13
View File
@@ -1,5 +1,11 @@
<style>
.filter-options-span {
display: inline-block;
width: 130px;
font-weight: bold;
}
.filter-name-title {
font-family: inherit;
font-size: 16px;
@@ -69,26 +75,37 @@
.select-filter-option {
display: inline;
width: 90px;
width: 100px;
}
#addField {
#addField, #customFilterDescription, #addFilter {
display: inline;
width: 400px;
}
#addFilter {
display: inline;
width: 400px;
width: 535px;
}
#selectedFilters {
margin-bottom: 20px;
}
#customFilterDescription {
display: inline;
width: 400px;
#applyFilter, #saveCustomFilterButton, .remove-selected-filter {
font-weight: bold;
}
#applyFilter, #saveCustomFilterButton {
width: 100px;
}
.remove-selected-filter {
padding-bottom: 3px;
}
.panel-title {
font-weight: bold;
padding-top: 3px;
}
.remove-field {
font-weight: bold;
}
</style>
@@ -97,7 +114,7 @@
function refreshSideMenu()
{
$.ajax({
url: "<?php echo base_url('index.ci.php/system/infocenter/InfoCenter/setNavigationMenuArray'); ?>",
url: "<?php echo site_url('system/infocenter/InfoCenter/setNavigationMenuArray'); ?>",
method: "GET",
data: {}
})
@@ -115,7 +132,7 @@
$(".remove-filter").click(function() {
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/deleteCustomFilter'); ?>",
url: "<?php echo site_url('system/Filters/deleteCustomFilter'); ?>",
method: "POST",
data: {
filter_id: $(this).attr('value')
@@ -6,7 +6,7 @@
if ($("#customFilterDescription").val() != '')
{
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/saveFilter'); ?>",
url: "<?php echo site_url('system/Filters/saveFilter'); ?>",
method: "POST",
data: {
customFilterDescription: $("#customFilterDescription").val()
@@ -30,12 +30,19 @@
</script>
<br>
<div>
<span class="filter-options-span">
Filter description:
</span>
<span>
Filter description: <input type="text" id="customFilterDescription" value="">
<input type="text" id="customFilterDescription" value="">
</span>
<span>
<input type="button" id="saveCustomFilterButton" value="Save filter">
</span>
</div>
<br>
@@ -74,7 +74,7 @@
});
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/sortSelectedFields'); ?>",
url: "<?php echo site_url('system/Filters/sortSelectedFields'); ?>",
method: "POST",
data: {
selectedFieldsLst: arrayDndId
@@ -106,7 +106,7 @@
$("#addField").change(function(event) {
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/addSelectedFields'); ?>",
url: "<?php echo site_url('system/Filters/addSelectedFields'); ?>",
method: "POST",
data: {
fieldName: $(this).val()
@@ -128,7 +128,7 @@
$(".remove-field").click(function(event) {
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/removeSelectedFields'); ?>",
url: "<?php echo site_url('system/Filters/removeSelectedFields'); ?>",
method: "POST",
data: {
fieldName: $(this).attr('fieldToRemove')
@@ -151,7 +151,7 @@
function renderSelectedFields()
{
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/selectFields'); ?>",
url: "<?php echo site_url('system/Filters/selectFields'); ?>",
method: "GET",
data: {},
dataType: "json"
@@ -232,7 +232,7 @@
<div id="filterSelectFieldsDnd" class="filter-select-fields-dnd-div"></div>
<div>
<span>
<span class="filter-options-span">
Add field:
</span>
@@ -10,7 +10,7 @@
$("#addFilter").change(function(event) {
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/addSelectedFilters'); ?>",
url: "<?php echo site_url('system/Filters/addSelectedFilters'); ?>",
method: "POST",
data: {
fieldName: $(this).val()
@@ -29,28 +29,6 @@
});
$(".remove-filter").click(function(event) {
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/removeSelectedFilters'); ?>",
method: "POST",
data: {
fieldName: $(this).attr('filterToRemove')
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFilters();
renderSelectedFilters();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
$(".select-filter-operation").change(function() {
if ($(this).val() == "set" || $(this).val() == "nset")
@@ -92,7 +70,7 @@
});
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/applyFilter'); ?>",
url: "<?php echo site_url('system/Filters/applyFilter'); ?>",
method: "POST",
data: {
filterNames: selectFilterName,
@@ -116,6 +94,23 @@
});
});
$(".remove-selected-filter").click(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/removeSelectedFilters'); ?>",
method: "POST",
data: {
fieldName: $(this).attr('filterToRemove')
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFilters();
renderSelectedFilters();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
}
function renderSelectedFilterFields(metaData, activeFilters, activeFiltersOperation, activeFiltersOption)
@@ -125,7 +120,7 @@
if (metaData.type.toLowerCase().indexOf("int") >= 0)
{
html = '<span>';
html += ' <select class="select-filter-operation form-control">';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="equal" ' + (activeFiltersOperation == "equal" ? "selected" : "") + '>equal</option>';
html += ' <option value="nequal" ' + (activeFiltersOperation == "nqual" ? "selected" : "") + '>not equal</option>';
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
@@ -133,37 +128,37 @@
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="number" value="' + activeFilters + '" class="select-filter-operation-value form-control">';
html += ' <input type="number" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('varchar') >= 0)
if (metaData.type.toLowerCase().indexOf('varchar') >= 0 || metaData.type.toLowerCase() == 'text')
{
html = '<span>';
html += ' <select class="select-filter-operation form-control">';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="contains" ' + (activeFiltersOperation == "contains" ? "selected" : "") + '>contains</option>';
html += ' <option value="ncontains" ' + (activeFiltersOperation == "ncontains" ? "selected" : "") + '>does not contain</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="text" value="' + activeFilters + '" class="select-filter-operation-value form-control">';
html += ' <input type="text" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('bool') >= 0)
{
html = '<span>';
html += ' <select class="select-filter-operation form-control">';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="true" ' + (activeFiltersOperation == "true" ? "selected" : "") + '>is true</option>';
html += ' <option value="false" ' + (activeFiltersOperation == "false" ? "selected" : "") + '>is false</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="hidden" value="' + activeFilters + '" class="select-filter-operation-value form-control">';
html += ' <input type="hidden" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('timestamp') >= 0 || metaData.type.toLowerCase().indexOf('date') >= 0)
{
var classOperation = 'select-filter-operation-value form-control';
var classOption = 'select-filter-option form-control';
var classOperation = 'form-control select-filter-operation-value';
var classOption = 'form-control select-filter-option';
var disabled = "";
if (activeFiltersOperation == "set" || activeFiltersOperation == "nset")
@@ -174,7 +169,7 @@
}
html = '<span>';
html += ' <select class="select-filter-operation form-control">';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="lt" ' + (activeFiltersOperation == "lt" ? "selected" : "") + '>less than</option>';
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
html += ' <option value="set" ' + (activeFiltersOperation == "set" ? "selected" : "") + '>is set</option>';
@@ -202,7 +197,7 @@
function renderSelectedFilters()
{
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/selectFilters'); ?>",
url: "<?php echo site_url('system/Filters/selectFilters'); ?>",
method: "GET",
data: {},
dataType: "json"
@@ -220,7 +215,7 @@
{
var selectedFilters = '<div>';
selectedFilters += '<span>';
selectedFilters += '<span class="filter-options-span">';
selectedFilters += data.selectedFiltersAliases[i];
selectedFilters += '</span>';
@@ -232,7 +227,7 @@
);
selectedFilters += '<span>';
selectedFilters += '<input type="button" value="X" class="remove-filter btn btn-default" filterToRemove="' + data.selectedFilters[i] + '">';
selectedFilters += '<input type="button" value="X" class="remove-selected-filter btn btn-default" filterToRemove="' + data.selectedFilters[i] + '">';
selectedFilters += '</span>';
selectedFilters += '</div>';
@@ -277,10 +272,12 @@
</script>
<br>
<div id="selectedFilters"></div>
<div>
<span>
<span class="filter-options-span">
Add filter:
</span>
@@ -289,6 +286,6 @@
</span>
<span>
<input id="applyFilter" type="button" value="Apply">
<input id="applyFilter" type="button" value="Apply filter">
</span>
</div>
@@ -19,7 +19,7 @@
function renderTableDataset()
{
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Filters/tableDataset'); ?>",
url: "<?php echo site_url('system/Filters/tableDataset'); ?>",
method: "GET",
data: {},
dataType: "json"
@@ -3,7 +3,7 @@
$(document).ready(function() {
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Navigation/header'); ?>",
url: "<?php echo site_url('system/Navigation/header'); ?>",
method: "GET",
data: {
navigation_widget_called: "<?php echo $this->router->directory.$this->router->class.'/'.$this->router->method; ?>"
+15 -7
View File
@@ -102,7 +102,7 @@
function renderSideMenu()
{
$.ajax({
url: "<?php echo base_url('index.ci.php/system/Navigation/menu'); ?>",
url: "<?php echo site_url('system/Navigation/menu'); ?>",
method: "GET",
data: {
navigation_widget_called: "<?php echo $this->router->directory.$this->router->class.'/'.$this->router->method; ?>"
@@ -114,13 +114,13 @@
{
var strMenu = '';
$("#side-menu").html('<li id="collapseicon" class="text-right" style="cursor: pointer; color: #337ab7"><i class="fa fa-angle-double-left fa-fw"></i></li>');
printCollapseIcon();
jQuery.each(data, function(i, e) {
strMenu += printNavItem(e);
});
$("#side-menu").append(strMenu);
$("#side-menu").html(strMenu);
$("#side-menu").metisMenu();
}
@@ -134,23 +134,31 @@
});
}
$(document).ready(function() {
renderSideMenu();
function printCollapseIcon()
{
// Hiding/showing navigation menu - works only with sb admin 2 template!!
if(!$("#collapseicon").length)
$("#side-menu").parent().append('<div id="collapseicon" title="hide Menu" class="text-right" style="cursor: pointer; color: #337ab7"><i class="fa fa-angle-double-left fa-fw"></i></div>');
$("#collapseicon").click(function() {
$("#page-wrapper").css('margin-left', '0px');
$("#side-menu").hide();
$("#collapseicon").hide();
$("#collapseinicon").show();
});
$("#collapseinicon").click(function() {
$("#page-wrapper").css('margin-left', '250px');
$("#side-menu").show();
$("#collapseicon").show();
$("#collapseinicon").hide();
});
}
$(document).ready(function() {
renderSideMenu();
});
@@ -160,5 +168,5 @@
<div class="sidebar-nav navbar-collapse">
<ul class="nav" id="side-menu"></ul>
</div>
<i id="collapseinicon" class="fa fa-angle-double-right fa-fw"></i>
<i id="collapseinicon" title="show Menu" class="fa fa-angle-double-right fa-fw"></i>
</div>