diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 5914611a7..1a2474fff 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -73,6 +73,7 @@ $menu=array 'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'), 'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'), 'Lehrfach'=>array('name'=>'Lehrfach', 'link'=>'lehre/lehrfach.php', 'target'=>'main'), + 'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')), 'Moodle'=>array ( diff --git a/soap/fhcomplete.php b/soap/fhcomplete.php new file mode 100644 index 000000000..81335c295 --- /dev/null +++ b/soap/fhcomplete.php @@ -0,0 +1,82 @@ + + */ +/** + * Aufruf: fhcomplete.php?class=benutzer&method=search&typ=json¶meter_0=österreicher + */ +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'); + +$class = $_REQUEST['class']; +$method = $_REQUEST['method']; +$typ = (isset($_REQUEST['typ'])?$_REQUEST['typ']:''); + +// die einzelnen funktionsparameter werden durchnummeriert mit 0 beginnend: +// parameter_0=param0¶meter_1=param1¶meter_3[0]=param3arr0¶meter_3[1]=param3arr1 +$parameter=array(); +for($i=0;$i<100;$i++) +{ + if(isset($_REQUEST['parameter_'.$i])) + $parameter[]=$_REQUEST['parameter_'.$i]; + else + break; +} + +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/webservicerecht.class.php'); +require_once('../include/'.$class.'.class.php'); + +// Berechtigung pruefen +$uid = get_uid(); + +// TODO Klasse pruefen und nicht nur die Methode +$wsrecht = new webservicerecht(); +if(!$wsrecht->isUserAuthorized($uid, $method)) + die('Sie haben keine Berechtigung fuer diesen Vorgang'); + +// Funktion aufrufen +$obj = new $class(); +if(call_user_func_array(array($obj, $method), $parameter)) +{ + $data['result']=$obj->cleanResult(); + $data['error']='false'; + $data['errormsg']=''; +} +else +{ + $data['result']=''; + $data['error']='true'; + $data['errormsg']=$obj->errormsg; +} + +// Daten ausgeben +if($typ=='json') + echo json_encode($data); +elseif($typ=='xml') + echo array_to_xml($data); +else + var_dump($data); +?> diff --git a/soap/lehrveranstaltung.json.php b/soap/lehrveranstaltung.json.php new file mode 100644 index 000000000..26a848a72 --- /dev/null +++ b/soap/lehrveranstaltung.json.php @@ -0,0 +1,63 @@ +, + */ +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/lehrveranstaltung.class.php'); +require_once('../include/benutzerberechtigung.class.php'); + +$uid = get_uid(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('lehre/studienordnung')) + die('Sie haben keine Berechtigung für diese Seite'); + +$method = isset($_REQUEST['method'])?$_REQUEST['method']:''; + +switch($method) +{ + case 'loadLehrveranstaltungStudienplan': + $studienplan_id=$_REQUEST['studienplan_id']; + $lehrveranstaltung = new lehrveranstaltung(); + if($lehrveranstaltung->loadLehrveranstaltungStudienplan($studienplan_id)) + { + $data['result']=$lehrveranstaltung->getLehrveranstaltungTree(); + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$lehrveranstaltung->errormsg; + } + break; + default: + break; +} + +echo json_encode($data); + +?> diff --git a/soap/studienordnung.json.php b/soap/studienordnung.json.php new file mode 100644 index 000000000..032367381 --- /dev/null +++ b/soap/studienordnung.json.php @@ -0,0 +1,45 @@ +getBerechtigungen($uid); +if(!$rechte->isBerechtigt('lehre/studienordnung')) + die('Sie haben keine Berechtigung für diese Seite'); + +$method = isset($_REQUEST['method'])?$_REQUEST['method']:''; + +switch($method) +{ + case 'loadStudienordnungSTG': + $studiengang_kz=$_REQUEST['studiengang_kz']; + $studienordnung = new studienordnung(); + if($studienordnung->loadStudienordnungSTG($studiengang_kz)) + { + $data['result']=$studienordnung->cleanResult(); + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$studienordnung->errormsg; + } + break; + default: + break; +} + +echo json_encode($data); + +?> diff --git a/soap/studienplan.json.php b/soap/studienplan.json.php new file mode 100644 index 000000000..fcdb8e36f --- /dev/null +++ b/soap/studienplan.json.php @@ -0,0 +1,45 @@ +getBerechtigungen($uid); +if(!$rechte->isBerechtigt('lehre/studienordnung')) + die('Sie haben keine Berechtigung für diese Seite'); + +$method = isset($_REQUEST['method'])?$_REQUEST['method']:''; + +switch($method) +{ + case 'loadStudienplanSTO': + $studienordnung_id=$_REQUEST['studienordnung_id']; + $studienplan = new studienplan(); + if($studienplan->loadStudienplanSTO($studienordnung_id)) + { + $data['result']=$studienplan->cleanResult(); + $data['error']='false'; + $data['errormsg']=''; + } + else + { + $data['error']='true'; + $data['errormsg']=$studienplan->errormsg; + } + break; + default: + break; +} + +echo json_encode($data); + +?> diff --git a/vilesci/lehre/studienordnung.inc.php b/vilesci/lehre/studienordnung.inc.php new file mode 100644 index 000000000..d6adef6d3 --- /dev/null +++ b/vilesci/lehre/studienordnung.inc.php @@ -0,0 +1,176 @@ + + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/studienordnung.class.php'); +require_once('../../include/studienplan.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/organisationsform.class.php'); +require_once('../../include/sprache.class.php'); + + +$uid = get_uid(); +$db = new basis_db(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +$method=(isset($_GET['method'])?$_GET['method']:''); + +if(!$rechte->isBerechtigt('lehre/studienordnung')) + die('Sie haben keine Berechtigung für diese Seite'); + +switch($method) +{ + case 'neueStudienordnung': + if(!isset($_GET['studiengang_kz'])) + die('Bitte zuerst einen Studiengang auswählen'); + + $studiengang_kz = $_GET['studiengang_kz']; + + $studiengang = new studiengang(); + if(!$studiengang->load($studiengang_kz)) + die('Studiengang ist ungültig'); + + echo ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Bezeichnung:
Version:
Gültig von:
Gültig bis:
ECTS:
Studiengangsbezeichnung:
Studiengangsbezeichnung Englisch:
Kurzbezeichnung des Studiengangs:
+ '; + break; + + case 'neuerStudienplan': + if(!isset($_GET['studiengang_kz'])) + die('Bitte zuerst einen Studiengang auswählen'); + + $studiengang_kz = $_GET['studiengang_kz']; + + $studiengang = new studiengang(); + if(!$studiengang->load($studiengang_kz)) + die('Studiengang ist ungültig'); + + echo ' + + + + + + + + + + + + + + + + + + + + + + + + + +
Bezeichnung:
Version:
Organisationsform:
Regelstudiendauer:
Sprache
+ '; + break; + default: + echo 'Unknown Method'.$method; + break; +} +?> diff --git a/vilesci/lehre/studienordnung.js b/vilesci/lehre/studienordnung.js new file mode 100644 index 000000000..c8522e0b0 --- /dev/null +++ b/vilesci/lehre/studienordnung.js @@ -0,0 +1,213 @@ +/* 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 , + */ +var studiengang_kz=''; +var studiengang_bezeichnung=''; +var studienordnung_id=''; +var studienordnung_bezeichnung=''; +var studienplan_id=''; +var lehrveranstaltungen=''; + +function loadError(xhr, textStatus, errorThrown) +{ + alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status); +} + +function drawHeader(text) +{ + if(text===undefined) + { + text = '

'; + if(studiengang_bezeichnung!='') + text=text+studiengang_bezeichnung; + if(studienordnung_bezeichnung!='') + text=text+' > '+studienordnung_bezeichnung; + if(studienplan_bezeichnung!='') + text=text+' > '+studienplan_bezeichnung; + + + text=text+'

'; + } + else + text='

'+text+'

'; + $('#header').html(text); +} +function loadStudienordnung() +{ + studiengang_kz = $('#studiengang').val(); + studiengang_bezeichnung = $( "#studiengang option:selected" ).text(); + studienordnung_id=''; + studienordnung_bezeichnung=''; + studienplan_id=''; + studienplan_bezeichnung=''; + + drawHeader(); + $.ajax( + { + dataType: "json", + url: "../../soap/fhcomplete.php", + data: { + "typ": "json", + "class": "studienordnung", + "method": "loadStudienordnungSTG", + "parameter_0": studiengang_kz + }, + success: StudienordnungLoaded, + error: loadError + }); +} + +function StudienordnungLoaded(data) +{ + if(data.error=='true') + { + alert('Fehler:'+data.errormsg); + } + else + { + drawStudienordnungen(data.result); + $( "#menueLinks" ).accordion("option","active",1); + } +} + +function drawStudienordnungen(data) +{ + var obj='Neue Studienordnung'; + $('#studienordnung').html(obj); +} + +function loadStudienplanSTO(studienordnung_id,bezeichnung) +{ + studienordnung_bezeichnung=bezeichnung; + studienordnung_id=studienordnung_id; + drawHeader(); + $.ajax( + { + dataType: "json", + url: "../../soap/fhcomplete.php", + data: { + "typ": "json", + "class": "studienplan", + "method": "loadStudienplanSTO", + "parameter_0": studienordnung_id + }, + success: StudienplanSTOLoaded, + error: loadError + }); +} + +function StudienplanSTOLoaded(data) +{ + if(data.error=='true') + { + alert('Fehler:'+data.errormsg); + } + else + { + drawStudienplan(data.result); + $( "#menueLinks" ).accordion("option","active",2); + } +} + +function drawStudienplan(data) +{ + var obj='Neuer Studienplan'; + $('#studienplan').html(obj); +} + +function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung) +{ + studienplan_id=studienplan_id; + studienplan_bezeichnung=bezeichnung; + drawHeader(); + $.ajax( + { + dataType: "json", + url: "../../soap/lehrveranstaltung.json.php", + data: { + "method": "loadLehrveranstaltungStudienplan", + "studienplan_id": studienplan_id + }, + success: LehrveranstaltungSTPLLoaded, + error: loadError + }); +} + +function LehrveranstaltungSTPLLoaded(data) +{ + if(data.error=='true') + { + alert('Fehler:'+data.errormsg); + } + else + { + lehrveranstaltungen = data.result; + drawLehrveranstaltung(data.result); + $( "#menueRechts" ).accordion("option","active",0); + //drawLehrveranstaltungGrid(); + $("#lehrveranstaltung").html("

Organisationseinheit

Lehrtyp

"); + } +} + +function drawLehrveranstaltung(data) +{ + var obj=''; + obj=getLehrveranstaltungSub(data); + $('#data').html(obj); +} + +function getLehrveranstaltungSub(data) +{ + var obj=''; + return obj; +} + +function neueStudienordnung() +{ + drawHeader('Neue Studienordnung'); + $("#data").load('studienordnung.inc.php?method=neueStudienordnung&studiengang_kz='+studiengang_kz); +} + +function neuerStudienplan() +{ + drawHeader('Neuer Studienplan'); + $("#data").load('studienordnung.inc.php?method=neuerStudienplan&studiengang_kz='+studiengang_kz); +} + diff --git a/vilesci/lehre/studienordnung.php b/vilesci/lehre/studienordnung.php new file mode 100644 index 000000000..c9ab497e6 --- /dev/null +++ b/vilesci/lehre/studienordnung.php @@ -0,0 +1,140 @@ + + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/studienordnung.class.php'); +require_once('../../include/studienplan.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/functions.inc.php'); + + +$uid = get_uid(); +$db = new basis_db(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +$studiengang_kz=(isset($_POST['studiengang_kz'])?$_POST['studiengang_kz']:''); + +echo ' + + + + Studienordnung + + + + + + + + + +'; +if(!$rechte->isBerechtigt('lehre/studienordnung')) + die('Sie haben keine Berechtigung für diese Seite'); +$studiengang = new studiengang(); +$studiengang->getAll('typ,kurzbz'); + +echo ' + + + + + + +
+ + + +
+   +
+
+ +
+'; + +echo ' + +'; +?>