mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Erweiterung der LV Regeln
This commit is contained in:
@@ -1201,5 +1201,69 @@ class lehrveranstaltung extends basis_db {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht nach Lehrveranstaltungen
|
||||
* @param $filter Suchfilter
|
||||
*/
|
||||
public function search($filter)
|
||||
{
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.*, tbl_studiengang.kurzbzlang as studiengang_kurzbzlang
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
lower(tbl_lehrveranstaltung.bezeichnung || ' ' || tbl_studiengang.kurzbzlang || ' ' || tbl_lehrveranstaltung.semester) like lower('%".$this->db_escape($filter)."%')
|
||||
OR lower(tbl_studiengang.kurzbzlang || ' ' || tbl_lehrveranstaltung.semester || ' ' || tbl_lehrveranstaltung.bezeichnung) like lower('%".$this->db_escape($filter)."%')
|
||||
";
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
|
||||
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$lv_obj->studiengang_kz = $row->studiengang_kz;
|
||||
$lv_obj->bezeichnung = $row->bezeichnung;
|
||||
$lv_obj->kurzbz = $row->kurzbz;
|
||||
$lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz;
|
||||
$lv_obj->semester = $row->semester;
|
||||
$lv_obj->ects = $row->ects;
|
||||
$lv_obj->semesterstunden = $row->semesterstunden;
|
||||
$lv_obj->anmerkung = $row->anmerkung;
|
||||
$lv_obj->lehre = $this->db_parse_bool($row->lehre);
|
||||
$lv_obj->lehreverzeichnis = $row->lehreverzeichnis;
|
||||
$lv_obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$lv_obj->ext_id = $row->ext_id;
|
||||
$lv_obj->insertamum = $row->insertamum;
|
||||
$lv_obj->insertvon = $row->insertvon;
|
||||
$lv_obj->planfaktor = $row->planfaktor;
|
||||
$lv_obj->planlektoren = $row->planlektoren;
|
||||
$lv_obj->planpersonalkosten = $row->planpersonalkosten;
|
||||
$lv_obj->plankostenprolektor = $row->plankostenprolektor;
|
||||
$lv_obj->updateamum = $row->updateamum;
|
||||
$lv_obj->updatevon = $row->updatevon;
|
||||
$lv_obj->sprache = $row->sprache;
|
||||
$lv_obj->sort = $row->sort;
|
||||
$lv_obj->incoming = $row->incoming;
|
||||
$lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis);
|
||||
$lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit);
|
||||
$lv_obj->koordinator = $row->koordinator;
|
||||
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
|
||||
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
|
||||
$lv_obj->studiengang_kurzbzlang = $row->studiengang_kurzbzlang;
|
||||
|
||||
$this->lehrveranstaltungen[] = $lv_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
+74
-16
@@ -25,10 +25,12 @@
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/student.class.php');
|
||||
require_once(dirname(__FILE__).'/prestudent.class.php');
|
||||
require_once(dirname(__FILE__).'/studiensemester.class.php');
|
||||
|
||||
class lvregel extends basis_db
|
||||
{
|
||||
protected $new=true; // boolean
|
||||
protected $new=true; // boolean
|
||||
public $result = array(); // Result Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
@@ -47,6 +49,9 @@ class lvregel extends basis_db
|
||||
protected $lvregeltyp_arr=array();
|
||||
protected $bezeichnung; //varchar(256)
|
||||
|
||||
protected $lehrveranstaltung_bezeichnung;
|
||||
protected $cache;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*/
|
||||
@@ -333,7 +338,7 @@ class lvregel extends basis_db
|
||||
public function loadLVRegeln($studienplan_lehrveranstaltung_id)
|
||||
{
|
||||
$qry = 'SELECT
|
||||
*
|
||||
*, (SELECT bezeichnung FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=tbl_lvregel.lehrveranstaltung_id) as lvbezeichnung
|
||||
FROM
|
||||
lehre.tbl_lvregel
|
||||
WHERE
|
||||
@@ -357,6 +362,7 @@ class lvregel extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->lehrveranstaltung_bezeichnung = $row->lvbezeichnung;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -371,6 +377,8 @@ class lvregel extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert die Lehrveranstaltungen als verschachtelten Tree
|
||||
* @param $studienplan_lehrveranstaltung_id
|
||||
* @return Array mit den verschachtelten Regeln
|
||||
*/
|
||||
public function getLVRegelTree($studienplan_lehrveranstaltung_id)
|
||||
{
|
||||
@@ -390,7 +398,9 @@ class lvregel extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Generiert die Subtrees des Lehrveranstaltungstrees
|
||||
* Generiert rekursiv die Subtrees des Lehrveranstaltungstrees
|
||||
* @param $lvregel_id Regel ID des Teilbaumes
|
||||
* @param Array mit den Subtree Elementen des Regelbaumes
|
||||
*/
|
||||
protected function getLVRegelTreeChilds($lvregel_id)
|
||||
{
|
||||
@@ -406,6 +416,9 @@ class lvregel extends basis_db
|
||||
return $childs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Erstellt ein Array aus dem Result Objekt für die Webservice Verwendung
|
||||
*/
|
||||
public function cleanResult()
|
||||
{
|
||||
$data = array();
|
||||
@@ -430,6 +443,7 @@ class lvregel extends basis_db
|
||||
|
||||
$obj->lvregeltyp_kurzbz = $row->lvregeltyp_kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->lehrveranstaltung_bezeichnung = $row->lehrveranstaltung_bezeichnung;
|
||||
$data[]=$obj;
|
||||
}
|
||||
}
|
||||
@@ -451,33 +465,39 @@ class lvregel extends basis_db
|
||||
|
||||
$obj->lvregeltyp_kurzbz = $this->lvregeltyp_kurzbz;
|
||||
$obj->bezeichnung = $this->bezeichnung;
|
||||
|
||||
$obj->lehrveranstaltung_bezeichnung = $this->lehrveranstaltung_bezeichnung;
|
||||
$data[]=$obj;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob sich eine Studierender zu einer Lehrveranstaltung anmelden darf
|
||||
* Prüft ob sich ein Student zu einer Lehrveranstaltung anmelden darf
|
||||
* @param $uid UID des Studierenden
|
||||
* @param $studienplan_lehrveranstaltung_id ID der Lehrveranstaltungszuordnung
|
||||
*/
|
||||
public function isZugangsberechtigt($uid, $studienplan_lehrveranstaltung_id)
|
||||
public function isZugangsberechtigt($uid, $studienplan_lehrveranstaltung_id, $studiensemester_kurzbz=null)
|
||||
{
|
||||
$this->debug('Teste Zugangsberechtigung für '.$uid);
|
||||
if($result = $this->getLVRegelTree($studienplan_lehrveranstaltung_id))
|
||||
{
|
||||
return $this->TestRegeln($uid, $result);
|
||||
return $this->TestRegeln($uid, $result, $studiensemester_kurzbz);
|
||||
}
|
||||
}
|
||||
|
||||
public function TestRegeln($uid, $regel_obj)
|
||||
/**
|
||||
* Prueft die Regeln fuer einen Studierenden
|
||||
* @param $uid UID des Studierenden
|
||||
* @param $regel_obj Regel Baum
|
||||
* @param $studiensemester_kurzbz Studiensemester das geprueft werden soll
|
||||
*/
|
||||
public function TestRegeln($uid, $regel_obj, $studiensemester_kurzbz=null)
|
||||
{
|
||||
$retval=true;
|
||||
foreach($regel_obj as $regel)
|
||||
{
|
||||
$this->debug('<br>');
|
||||
$testval = $this->Test($uid, $regel);
|
||||
$testval = $this->Test($uid, $regel, $studiensemester_kurzbz);
|
||||
$retval = $this->Compare($regel[0]->operator, $retval, $testval);
|
||||
$this->debug(' - RETVAL:'.($retval?'TRUE':'FALSE'));
|
||||
}
|
||||
@@ -485,6 +505,13 @@ class lvregel extends basis_db
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vergleicht die Regeln untereinander anhand des Operators
|
||||
* @param $operator Operator der Regel
|
||||
* @param $retval Boolean Wert der Ausgangsregel
|
||||
* @param $testval Boolean Wert der Vergleichsregel
|
||||
* @return Boolean Ergebnis des Vergleichs
|
||||
*/
|
||||
public function Compare($operator, $retval, $testval)
|
||||
{
|
||||
switch($operator)
|
||||
@@ -508,7 +535,13 @@ class lvregel extends basis_db
|
||||
return $retval;
|
||||
}
|
||||
|
||||
public function Test($uid, $regel_obj)
|
||||
/**
|
||||
* Testet die Regel für einen Studenten
|
||||
* @param $uid User
|
||||
* @param $regel_obj
|
||||
* @param $studiensemester_kurzbz
|
||||
*/
|
||||
public function Test($uid, $regel_obj, $studiensemester_kurzbz=null)
|
||||
{
|
||||
$regel = $regel_obj[0];
|
||||
|
||||
@@ -517,20 +550,43 @@ class lvregel extends basis_db
|
||||
switch($regel->lvregeltyp_kurzbz)
|
||||
{
|
||||
case 'ausbsemmin':
|
||||
/* Prueft ob das Ausbildungssemester das mindestens erforderlich ist
|
||||
um die Lehrveranstaltung zu besuchen */
|
||||
|
||||
$this->debug('Regeltyp ausbsemmin');
|
||||
|
||||
$student = new student();
|
||||
$student->load($uid);
|
||||
|
||||
if($student->semester>=$regel->parameter)
|
||||
// Wenn das Studiensemester nicht gesetzt ist, wird das aktuelle verwendet
|
||||
if($studiensemester_kurzbz=='')
|
||||
{
|
||||
$this->debug('StudSem: '.$student->semester.' >= RegelParam: '.$regel->parameter);
|
||||
$studiensemester = new studiensemester();
|
||||
$studiensemester_kurzbz = $studiensemester->getaktorNext();
|
||||
}
|
||||
|
||||
// Ausbildungssemester wird nur beim 1. durchlauf ermittelt
|
||||
if(!isset($this->cache[$uid]) && !isset($this->cache[$uid][$studiensemester_kurzbz]))
|
||||
{
|
||||
$student = new student();
|
||||
$student->load($uid);
|
||||
|
||||
// Ausbildungssemester aus dem Status holen
|
||||
$prestudent = new prestudent();
|
||||
if($prestudent->getLastStatus($student->prestudent_id, $studiensemester_kurzbz))
|
||||
{
|
||||
$this->cache[$uid][$studiensemester_kurzbz]=$prestudent->semester;
|
||||
}
|
||||
}
|
||||
$ausbildungssemester = $this->cache[$uid][$studiensemester_kurzbz];
|
||||
|
||||
// Vergleichen des Ausbildungssemesters mit dem RegelParameter
|
||||
if($ausbildungssemester>=$regel->parameter)
|
||||
{
|
||||
$this->debug('StudSem: '.$ausbildungssemester.' >= RegelParam: '.$regel->parameter);
|
||||
$this->debug('TRUE');
|
||||
$retval = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->debug('StudSem: '.$student->semester.' >= RegelParam: '.$regel->parameter);
|
||||
$this->debug('StudSem: '.$ausbildungssemester.' >= RegelParam: '.$regel->parameter);
|
||||
$this->debug('FALSE');
|
||||
$retval = false;
|
||||
}
|
||||
@@ -576,6 +632,8 @@ class lvregel extends basis_db
|
||||
// Eventuell in Addons nach Regeltypen suchen
|
||||
break;
|
||||
}
|
||||
|
||||
// Subregeln dieser LVRegel pruefen
|
||||
if(isset($regel_obj['childs']) && count($regel_obj['childs'])>0)
|
||||
{
|
||||
$this->debug('<br> - Subregel '.$regel->lvregel_id.' -');
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="../fhcomplete.css" />
|
||||
<link rel="stylesheet" href="../vilesci.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Bilder</h1>
|
||||
<table>
|
||||
<?php
|
||||
$dir = dirname(__FILE__).'/';
|
||||
|
||||
if (is_dir($dir))
|
||||
{
|
||||
if ($dh = opendir($dir))
|
||||
{
|
||||
while (($file = readdir($dh)) !== false)
|
||||
{
|
||||
if(filetype($dir . $file)=='file')
|
||||
echo '
|
||||
<tr>
|
||||
<td>
|
||||
<img src="'.$file.'" style="max-height:30px; max-width:50px" />
|
||||
</td>
|
||||
<td><a href="'.$file.'">'.$file.'</a></td>
|
||||
</tr>';
|
||||
//echo "filename: $file : filetype: " . . "\n";
|
||||
}
|
||||
closedir($dh);
|
||||
}
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
</body>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 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 >
|
||||
*/
|
||||
header( 'Expires: -1' );
|
||||
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||
header( 'Pragma: no-cache' );
|
||||
header('Content-Type: text/html;charset=UTF-8');
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/lehrveranstaltung.class.php');
|
||||
|
||||
|
||||
if (!$uid = get_uid())
|
||||
die('Keine UID gefunden');
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
if(!$rechte->getBerechtigungen($uid))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
if(!$rechte->isBerechtigt('lehre/studienordnung'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
$work = (isset($_REQUEST['work'])?$_REQUEST['work']:'');
|
||||
|
||||
switch ($work)
|
||||
{
|
||||
case 'searchlehrveranstaltung':
|
||||
$filter=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:''));
|
||||
if (is_null($filter) || $filter=='')
|
||||
exit();
|
||||
|
||||
$result=array();
|
||||
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
if(!$lehrveranstaltung->search($filter))
|
||||
die($lehrveranstaltung->errormsg);
|
||||
|
||||
foreach($lehrveranstaltung->lehrveranstaltungen as $row)
|
||||
{
|
||||
$item['lehrveranstaltung_id']=$row->lehrveranstaltung_id;
|
||||
$item['bezeichnung']=$row->bezeichnung;
|
||||
$item['semester']=$row->semester;
|
||||
$item['kurzbz']=$row->kurzbz;
|
||||
$item['aktiv']=$row->aktiv;
|
||||
$item['lehre']=$row->lehre;
|
||||
$item['studiengang_kurzbzlang']=$row->studiengang_kurzbzlang;
|
||||
$result[]=$item;
|
||||
}
|
||||
|
||||
echo json_encode($result);
|
||||
break;
|
||||
default:
|
||||
echo 'Unbekannter Vorgang';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
@@ -1,7 +1,7 @@
|
||||
var LVREGEL_lvRegelTypen=''; // Array mit den Regeltypen
|
||||
var LVREGELnewcounter=0; // Counter fuer neue Regeln
|
||||
var LVREGELStudienplanLehrveranstaltungID=''; // ID der ausgewaehlten Lehrveranstaltungszuordnung
|
||||
|
||||
var LVREGELLehrveranstaltungAutocompleteArray=new Array(); // Enthaelt die IDs der Input Felder die zu Autocomplete Feldern werden sollen
|
||||
/**
|
||||
* Laedt die Regeln zu einer Lehrveranstaltungszuordnung
|
||||
*/
|
||||
@@ -9,9 +9,6 @@ function LVRegelnloadRegeln(studienplan_lehrveranstaltung_id)
|
||||
{
|
||||
LVREGELStudienplanLehrveranstaltungID=studienplan_lehrveranstaltung_id;
|
||||
|
||||
//$('#menueRechts').hide();
|
||||
|
||||
|
||||
// Laden der Regeltypen
|
||||
$.ajax(
|
||||
{
|
||||
@@ -63,6 +60,7 @@ function LVRegelnloadRegeln(studienplan_lehrveranstaltung_id)
|
||||
function drawLVRegeln(data)
|
||||
{
|
||||
$('#LVREGELDetailsDialog').html(getChilds(data));
|
||||
LVRegelAddAutocomplete();
|
||||
jqUi("#LVREGELDetailsDialog").dialog( "open" );
|
||||
}
|
||||
|
||||
@@ -93,6 +91,68 @@ function getChilds(data, parent='')
|
||||
return obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Macht aus allen LV Input Feldern die zuvor angelegt wurden Autocomplete Felder
|
||||
*/
|
||||
function LVRegelAddAutocomplete()
|
||||
{
|
||||
for(var i in LVREGELLehrveranstaltungAutocompleteArray)
|
||||
{
|
||||
jqUi('#lvregel_lehrveranstaltung_id_autocomplete'+LVREGELLehrveranstaltungAutocompleteArray[i]).autocomplete({
|
||||
source: function(request, response)
|
||||
{
|
||||
$.ajax({
|
||||
url: "studienordnung_autocomplete.php",
|
||||
datatype:"json",
|
||||
data: {
|
||||
term: request.term,
|
||||
work: 'searchlehrveranstaltung',
|
||||
},
|
||||
success: function(data)
|
||||
{
|
||||
data=eval(data);
|
||||
response($.map(data, function(item)
|
||||
{
|
||||
return {
|
||||
value:item.lehrveranstaltung_id,
|
||||
label:item.bezeichnung+' '+item.studiengang_kurzbzlang+' '+item.semester+'. Semester ('+item.lehrveranstaltung_id+')'
|
||||
}
|
||||
}));
|
||||
}
|
||||
});
|
||||
},
|
||||
minLength:3,
|
||||
select: function(event, ui)
|
||||
{
|
||||
var lvregel_id = event.target.attributes.lvregel_id.value;
|
||||
// ausgewaehlte ID in Hidden Feld speichern
|
||||
$('#lvregel_lehrveranstaltung_id'+lvregel_id).val(ui.item.value);
|
||||
// Bezeichnung im Textfeld anzeigen
|
||||
$('#'+event.target.id).val(ui.item.label);
|
||||
$('#lvregel_lehrveranstaltung_span'+lvregel_id).text(ui.item.label);
|
||||
LVRegelShowAutocomplete(lvregel_id,false);
|
||||
return false;
|
||||
},
|
||||
change: function(event,ui)
|
||||
{
|
||||
// Wenn das Textfeld geleert wird, auch die ID leeren
|
||||
if(ui.item==null)
|
||||
{
|
||||
var lvregel_id = event.target.attributes.lvregel_id.value;
|
||||
$('#lvregel_lehrveranstaltung_id'+lvregel_id).val('');
|
||||
$('#'+event.target.id).val('');
|
||||
$('#lvregel_lehrveranstaltung_span'+lvregel_id).text('klicken um LV auszuwählen');
|
||||
LVRegelShowAutocomplete(lvregel_id,false);
|
||||
}
|
||||
}
|
||||
});
|
||||
$('#lvregel_lehrveranstaltung_id_autocomplete'+LVREGELLehrveranstaltungAutocompleteArray[i]).hide();
|
||||
}
|
||||
|
||||
// Array wieder leeren
|
||||
LVREGELLehrveranstaltungAutocompleteArray= new Array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Zeichnet den Eintrag fuer eine Regel
|
||||
*/
|
||||
@@ -107,7 +167,7 @@ function drawRegel(regel)
|
||||
|
||||
val = val+'<li id="lvregel_li'+regel.lvregel_id+'" '+neustyle+'>';
|
||||
|
||||
val = val+'<input size="2" type="text" value="'+regel.lvregel_id+'" />';
|
||||
val = val+'<input size="2" type="hidden" value="'+regel.lvregel_id+'" />';
|
||||
val = val+'<input type="hidden" id="lvregel_lvregel_id_parent'+regel.lvregel_id+'" value="'+ClearNull(regel.lvregel_id_parent)+'" />';
|
||||
val = val+'<input type="hidden" id="lvregel_studienplan_lehrveranstaltung_id'+regel.lvregel_id+'" value="'+regel.studienplan_lehrveranstaltung_id+'" />';
|
||||
if(regel.neu==true)
|
||||
@@ -125,7 +185,7 @@ function drawRegel(regel)
|
||||
val = val+'</select>';
|
||||
|
||||
//LVRegelTypen
|
||||
val = val+'<select id="lvregel_lvregeltyp'+regel.lvregel_id+'">';
|
||||
val = val+'<select id="lvregel_lvregeltyp'+regel.lvregel_id+'" onchange="LVRegelTypChange(\''+regel.lvregel_id+'\')">';
|
||||
|
||||
for(var i in LVREGEL_lvRegelTypen)
|
||||
{
|
||||
@@ -139,10 +199,35 @@ function drawRegel(regel)
|
||||
val = val+'</select>';
|
||||
|
||||
// Parameter
|
||||
val = val+'<input type="text" size="1" id="lvregel_parameter'+regel.lvregel_id+'" value="'+ClearNull(regel.parameter)+'" />';
|
||||
// Input Feld verstecken wenn der Typ LVpositiv ist
|
||||
if(regel.lvregeltyp_kurzbz=='lvpositiv')
|
||||
var style='style="display:none"';
|
||||
else
|
||||
var style='';
|
||||
|
||||
val = val+'<input type="text" '+style+' size="1" id="lvregel_parameter'+regel.lvregel_id+'" value="'+ClearNull(regel.parameter)+'" />';
|
||||
|
||||
if(regel.lvregeltyp_kurzbz=='lvpositiv')
|
||||
var style='';
|
||||
else
|
||||
var style='style="display: none"';
|
||||
|
||||
val = val+'<span '+style+' id="lvregel_lehrveranstaltung_data'+regel.lvregel_id+'">';
|
||||
// Lehrveranstaltung ID
|
||||
val = val+'<input type="text" size="4" id="lvregel_lehrveranstaltung_id'+regel.lvregel_id+'" value="'+ClearNull(regel.lehrveranstaltung_id)+'" />';
|
||||
val = val+'<input type="hidden" size="4" id="lvregel_lehrveranstaltung_id'+regel.lvregel_id+'" value="'+ClearNull(regel.lehrveranstaltung_id)+'" />';
|
||||
|
||||
// Autocomplete Feld fuer Lehrveranstaltung
|
||||
val = val+'<input type="text" size="12" id="lvregel_lehrveranstaltung_id_autocomplete'+regel.lvregel_id+'" value="'+ClearNull(regel.lehrveranstaltung_bezeichnung)+'" lvregel_id="'+regel.lvregel_id+'"/>';
|
||||
if(regel.lehrveranstaltung_bezeichnung==null || regel.lehrveranstaltung_bezeichnung=='undefined' || regel.lehrveranstaltung_bezeichnung=='')
|
||||
var lvbezeichnung = 'klicken um LV auszuwählen';
|
||||
else
|
||||
var lvbezeichnung = regel.lehrveranstaltung_bezeichnung;
|
||||
|
||||
val = val+' <a href="#" style="font-size: x-small" onclick="LVRegelShowAutocomplete(\''+regel.lvregel_id+'\',true);return false;" id="lvregel_lehrveranstaltung_span'+regel.lvregel_id+'">'+lvbezeichnung+'</a>';
|
||||
// Die Autocomplete Funktionalitaet wird erst hinzugefuegt, wenn das Input Feld tatsaechlich existiert und
|
||||
// bis dort hin zwischengespeichert
|
||||
LVREGELLehrveranstaltungAutocompleteArray[LVREGELLehrveranstaltungAutocompleteArray.length]=regel.lvregel_id; // WORKING
|
||||
val = val+'</span>';
|
||||
|
||||
// Speichern Button
|
||||
val = val+' <input type="button" onclick="saveRegel(\''+regel.lvregel_id+'\');return false;" value="ok">';
|
||||
@@ -164,6 +249,37 @@ function drawRegel(regel)
|
||||
return val;
|
||||
}
|
||||
|
||||
function LVRegelTypChange(id)
|
||||
{
|
||||
var typ = $('#lvregel_lvregeltyp'+id+' option:selected').val();
|
||||
|
||||
if(typ=='lvpositiv')
|
||||
{
|
||||
$('#lvregel_lehrveranstaltung_data'+id).show();
|
||||
$('#lvregel_parameter'+id).hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#lvregel_lehrveranstaltung_data'+id).hide();
|
||||
$('#lvregel_parameter'+id).show();
|
||||
}
|
||||
}
|
||||
|
||||
function LVRegelShowAutocomplete(lvregel_id,show)
|
||||
{
|
||||
if(show)
|
||||
{
|
||||
$('#lvregel_lehrveranstaltung_id_autocomplete'+lvregel_id).show();
|
||||
$('#lvregel_lehrveranstaltung_id_autocomplete'+lvregel_id).focus();
|
||||
$('#lvregel_lehrveranstaltung_id_autocomplete'+lvregel_id).select();
|
||||
$('#lvregel_lehrveranstaltung_span'+lvregel_id).hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#lvregel_lehrveranstaltung_id_autocomplete'+lvregel_id).hide();
|
||||
$('#lvregel_lehrveranstaltung_span'+lvregel_id).show();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Speichert eine Regel
|
||||
*/
|
||||
@@ -176,6 +292,7 @@ function saveRegel(id)
|
||||
var operator = $('#lvregel_operator'+id+' option:selected').val();
|
||||
var studienplan_lehrveranstaltung_id = $('#lvregel_studienplan_lehrveranstaltung_id'+id).val();
|
||||
var lvregel_id_parent = $('#lvregel_lvregel_id_parent'+id).val();
|
||||
var lehrveranstaltung_bezeichnung=$('#lvregel_lehrveranstaltung_span'+id).text();
|
||||
lvregel_id_parent=ClearNull(lvregel_id_parent);
|
||||
|
||||
// Vorhandene Eintraege werden vor dem Speichern geladen
|
||||
@@ -219,9 +336,11 @@ function saveRegel(id)
|
||||
{
|
||||
// Gespeicherte Zeile neue Zeichnen
|
||||
//$('#lvregel_li'+id).parent().append(drawRegel(data.result[0]));
|
||||
data.result[0].lehrveranstaltung_bezeichnung=lehrveranstaltung_bezeichnung;
|
||||
$(drawRegel(data.result[0])).insertAfter('#lvregel_li'+id);
|
||||
// Neu Zeile entfernen
|
||||
$('#lvregel_li'+id).remove();
|
||||
LVRegelAddAutocomplete();
|
||||
}
|
||||
},
|
||||
error: loadError
|
||||
@@ -253,6 +372,7 @@ function addRegel(lvregel_id_parent)
|
||||
{
|
||||
$('#lvregel_li'+lvregel_id_parent).append('<ul id="lvregel_ul'+lvregel_id_parent+'">'+drawRegel(regel)+'<ul>');
|
||||
}
|
||||
LVRegelAddAutocomplete();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user