mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 07:22:17 +00:00
added Plausicheck gui to start plausichecks manually
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Plausichecks extends Auth_Controller
|
||||
{
|
||||
private $_uid;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => array('system/issues_verwalten:r'),
|
||||
'runChecks' => array('system/issues_verwalten:r')
|
||||
)
|
||||
);
|
||||
|
||||
// Load libraries
|
||||
$this->load->library('issues/PlausicheckProducerLib');
|
||||
$this->load->library('WidgetLib');
|
||||
//$this->load->library('IssuesLib');
|
||||
|
||||
// Load models
|
||||
$this->load->model('system/Fehler_model', 'FehlerModel');
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
|
||||
//~ $this->loadPhrases(
|
||||
//~ array(
|
||||
//~ 'global',
|
||||
//~ 'ui',
|
||||
//~ 'filter',
|
||||
//~ 'lehre',
|
||||
//~ 'person',
|
||||
//~ 'fehlermonitoring'
|
||||
//~ )
|
||||
//~ );
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$filterData = $this->_getFilterData();
|
||||
$this->load->view('system/issues/plausichecks', $filterData);
|
||||
}
|
||||
|
||||
public function runChecks()
|
||||
{
|
||||
$studiensemester_kurzbz = $this->input->get('studiensemester_kurzbz');
|
||||
$studiengang_kz = $this->input->get('studiengang_kz');
|
||||
$fehler_kurzbz = $this->input->get('fehler_kurzbz');
|
||||
|
||||
// message array for storing info output
|
||||
$messages = array();
|
||||
// all fehler kurzbz which are going to be checked
|
||||
$fehlerKurzbz = !isEmptyString($fehler_kurzbz) ? array($fehler_kurzbz) : $this->plausicheckproducerlib->getFehlerKurzbz();
|
||||
// set Studiengang to null if not passed
|
||||
if (isEmptyString($studiengang_kz)) $studiengang_kz = null;
|
||||
|
||||
$messages[] = "Plausicheck Lauf gestartet";
|
||||
|
||||
// get the data returned by Plausicheck
|
||||
foreach ($fehlerKurzbz as $fehler_kurzbz)
|
||||
{
|
||||
// execute the check
|
||||
$messages[] = "Prüfe " . $fehler_kurzbz . "...";
|
||||
$plausicheckRes = $this->plausicheckproducerlib->producePlausicheck($fehler_kurzbz, $studiensemester_kurzbz, $studiengang_kz);
|
||||
|
||||
if (isError($plausicheckRes)) $this->terminateWithJsonError(getError($plausicheckRes));
|
||||
|
||||
if (hasData($plausicheckRes))
|
||||
{
|
||||
$plausicheckData = getData($plausicheckRes);
|
||||
|
||||
foreach ($plausicheckData as $plausiData)
|
||||
{
|
||||
// get the data needed for issue production
|
||||
$person_id = isset($plausiData['person_id']) ? $plausiData['person_id'] : null;
|
||||
$oe_kurzbz = isset($plausiData['oe_kurzbz']) ? $plausiData['oe_kurzbz'] : null;
|
||||
$fehlertext_params = isset($plausiData['fehlertext_params']) ? $plausiData['fehlertext_params'] : null;
|
||||
$resolution_params = isset($plausiData['resolution_params']) ? $plausiData['resolution_params'] : null;
|
||||
|
||||
// get Text of the Fehler
|
||||
$this->FehlerModel->addSelect('fehlertext');
|
||||
$fehlerRes = $this->FehlerModel->loadWhere(array('fehler_kurzbz' => $fehler_kurzbz));
|
||||
|
||||
if (isError($fehlerRes)) $this->outputJsonError(getError($fehlerRes));
|
||||
|
||||
// optionally replace fehler parameters in text, output the fehlertext
|
||||
if (hasData($fehlerRes))
|
||||
{
|
||||
$fehlerText = getData($fehlerRes)[0]->fehlertext;
|
||||
$fehlerText = isEmptyArray($fehlertext_params) ? $fehlerText : vsprintf($fehlerText, $fehlertext_params);
|
||||
$messages[] = $fehlerText;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
$messages[] = "Nichts gefunden für Fehler $fehler_kurzbz";
|
||||
}
|
||||
|
||||
$messages[] = "Plausicheck Lauf gestoppt";
|
||||
|
||||
$this->outputJsonSuccess($messages);
|
||||
}
|
||||
|
||||
private function _getFilterData()
|
||||
{
|
||||
$this->StudiensemesterModel->addOrder('start', 'DESC');
|
||||
$studiensemesterRes = $this->StudiensemesterModel->load();
|
||||
|
||||
if (isError($studiensemesterRes)) show_error(getError($studiensemesterRes));
|
||||
|
||||
$currSemRes = $this->StudiensemesterModel->getAkt();
|
||||
|
||||
if (isError($currSemRes)) show_error(getError($currSemRes));
|
||||
|
||||
$this->StudiengangModel->addSelect('studiengang_kz, tbl_studiengang.bezeichnung, tbl_studiengang.typ,
|
||||
tbl_studiengangstyp.bezeichnung AS typbezeichnung, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel');
|
||||
$this->StudiengangModel->addJoin('public.tbl_studiengangstyp', 'typ');
|
||||
$this->StudiengangModel->addOrder('kuerzel, tbl_studiengang.bezeichnung, studiengang_kz');
|
||||
$studiengaengeRes = $this->StudiengangModel->loadWhere(array('aktiv' => true));
|
||||
|
||||
if (isError($studiengaengeRes)) show_error(getError($studiengaengeRes));
|
||||
|
||||
$fehlerKurzbz = $this->plausicheckproducerlib->getFehlerKurzbz();
|
||||
|
||||
return array(
|
||||
'semester' => hasData($studiensemesterRes) ? getData($studiensemesterRes) : array(),
|
||||
'currsemester' => hasData($currSemRes) ? getData($currSemRes) : array(),
|
||||
'studiengaenge' => hasData($studiengaengeRes) ? getData($studiengaengeRes) : array(),
|
||||
'fehler' => $fehlerKurzbz
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Plausichecks',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'ajaxlib' => true,
|
||||
'navigationwidget' => true,
|
||||
'dialoglib' => true,
|
||||
//~ 'phrases' => array(
|
||||
//~ 'ui',
|
||||
//~ 'fehlermonitoring'
|
||||
//~ ),
|
||||
//'customCSSs' => array('public/css/issues/issuesZustaendigkeiten.css', 'public/css/sbadmin2/tablesort_bootstrap.css'),
|
||||
'customJSs' => array('public/js/issues/plausichecks.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">
|
||||
Plausichecks
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-2 form-group">
|
||||
<label>Studiensemester</label>
|
||||
<select class="form-control" name="studiensemester" id="studiensemester">
|
||||
<?php
|
||||
foreach ($semester as $sem):
|
||||
$selected = $sem->studiensemester_kurzbz === $currsemester[0]->studiensemester_kurzbz ? ' selected=""' : '';
|
||||
?>
|
||||
<option value="<?php echo $sem->studiensemester_kurzbz ?>"<?php echo $selected ?>>
|
||||
<?php echo $sem->studiensemester_kurzbz ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-4 form-group">
|
||||
<label>Studiengang</label>
|
||||
<select class="form-control" name="studiengang_kz" id="studiengang_kz">
|
||||
<option value="" selected="selected">Alle</option>';
|
||||
<?php
|
||||
$typ = '';
|
||||
foreach ($studiengaenge as $studiengang):
|
||||
if ($typ != $studiengang->typ || $typ == '')
|
||||
{
|
||||
if ($typ != '')
|
||||
echo '</optgroup>';
|
||||
|
||||
echo '<optgroup label = "'.($studiengang->typbezeichnung !== '' ? $studiengang->typbezeichnung : $studiengang).'">';
|
||||
}
|
||||
$typ = $studiengang->typ;
|
||||
?>
|
||||
<option value="<?php echo $studiengang->studiengang_kz ?>">
|
||||
<?php echo $studiengang->kuerzel . ' - ' . $studiengang->bezeichnung ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-4 form-group">
|
||||
<label>Fehler</label>
|
||||
<select class="form-control" name="fehler_kurzbz" id="fehler_kurzbz">
|
||||
<option value="" selected="selected">Alle</option>';
|
||||
<?php foreach ($fehler as $fehler_kurzbz):?>
|
||||
<option value="<?php echo $fehler_kurzbz ?>">
|
||||
<?php echo $fehler_kurzbz ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-2 form-group">
|
||||
<label> </label>
|
||||
<br />
|
||||
<button class="btn btn-default" id="plausistart">Plausichecks starten</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="well well-sm wellminheight">
|
||||
<h4 class="text-center">Output:</h4>
|
||||
<div id="plausioutput" class="panel panel-body">
|
||||
<div id="plausioutput-text">-</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* Javascript file for Plausichecks display
|
||||
*/
|
||||
|
||||
var Plausichecks = {
|
||||
|
||||
startPlausichecks: function(studiensemester_kurzbz, studiengang_kz, fehler_kurzbz)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'system/issues/Plausichecks/runChecks',
|
||||
{
|
||||
studiensemester_kurzbz: studiensemester_kurzbz,
|
||||
studiengang_kz: studiengang_kz,
|
||||
fehler_kurzbz: fehler_kurzbz
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
let messageStr = "";
|
||||
let messages = FHC_AjaxClient.getData(data);
|
||||
|
||||
for (i = 0; i < messages.length; i++)
|
||||
{
|
||||
messageStr += messages[i]+"<br />";
|
||||
}
|
||||
|
||||
$("#plausioutput").html(messageStr);
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* When JQuery is up
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
// set event for adding a new Zuständigkeit
|
||||
$("#plausistart").click(
|
||||
function()
|
||||
{
|
||||
Plausichecks.startPlausichecks(
|
||||
$("#studiensemester").val(),
|
||||
$("#studiengang_kz").val(),
|
||||
$("#fehler_kurzbz").val(),
|
||||
);
|
||||
}
|
||||
)
|
||||
});
|
||||
Reference in New Issue
Block a user