Erweiterungen Lehreinheiten-Modul

This commit is contained in:
Andreas Österreicher
2007-03-05 16:55:28 +00:00
parent 1e19c6f1e6
commit d23f773ca5
5 changed files with 239 additions and 12 deletions
+22
View File
@@ -79,6 +79,28 @@ elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_del')
echo $leg->errormsg;
}
}
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_add')
{
if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id']))
{
$leg = new lehreinheitgruppe($conn);
$leg->lehreinheit_id = $_POST['lehreinheit_id'];
$leg->studiengang_kz = $_POST['studiengang_kz'];
$leg->semester = $_POST['semester'];
$leg->verband = $_POST['verband'];
$leg->gruppe = $_POST['gruppe'];
$leg->gruppe_kurzbz = $_POST['gruppe_kurzbz'];
if($leg->save(true))
{
echo 'ok';
}
else
echo $leg->errormsg;
}
else
echo "Lehreinheit_id ist ungueltig";
}
else
{
if ($_POST['do']=='create' || ($_POST['do']=='update'))
+7 -3
View File
@@ -14,13 +14,14 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
<!-- *************************** LEHREINHEIT DETAILS ************************* -->
<!--<script src="chrome://global/content/nsTransferable.js"/>-->
<vbox id="lfvt-detail" class="lvaDetail" style="margin:0px;" >
<popupset>
<popup id="lfvt_detail_gruppe_tree_popup">
<menuitem label="Entfernen" oncommand="lfvt_LehreinheitGruppeDel();" />
</popup>
</popupset>
<!-- *************************** LEHREINHEIT DETAILS ************************* -->
<vbox id="lfvt-detail" class="lvaDetail" style="margin:0px;" >
<hbox style="background:#eeeeee;margin:0px;padding:2px">
<label value="Details" style="font-size:12pt;font-weight:bold;margin-top:5px;" flex="1" />
<spacer flex="1" />
@@ -160,7 +161,10 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
ref="http://www.technikum-wien.at/lehreinheitgruppe/liste"
flags="dont-build-content"
style="border: 1px solid black;"
ondragdrop="lfvt_detail_gruppe_dragdrop(event);"
ondragover="return lfvt_detail_gruppe_dragover(event);"
contextmenu="lfvt_detail_gruppe_tree_popup"
ondragexit="debug('ondragexit');"
>
<treecols>
<treecol id="lfvt_detail_tree_lehreinheitgruppe-col-bezeichnung" label="Bezeichnung" flex="2" hidden="false"
@@ -188,7 +192,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?
</hbox>
<hbox>
<button label="+" id="lfvt_detail_gruppe_button_add" oncommand="lfvt_LehreinheitGruppeAdd()" style="max-width: 30px;" disabled="true"/>
<!--<button label="+" id="lfvt_detail_gruppe_button_add" oncommand="lfvt_LehreinheitGruppeAdd()" style="max-width: 30px;" disabled="true"/>-->
<!--<button label="-" id="lfvt_detail_gruppe_button_del" oncommand="lfvt_LehreinheitGruppeDel()" style="max-width: 30px;" disabled="true"/>-->
</hbox>
+151 -6
View File
@@ -393,11 +393,11 @@ function lvaAuswahl()
document.getElementById('lfvt_detail_textbox_lehreinheit_id').value=lehreinheit_id;
//Lehreinheitmitarbeiter tree setzen
url='../rdf/lehreinheitmitarbeiter.rdf.php?lehreinheit_id='+lehreinheit_id;
url='../rdf/lehreinheitmitarbeiter.rdf.php?lehreinheit_id='+lehreinheit_id+"&"+gettimestamp();
document.getElementById('lfvt_detail_tree_lehreinheitmitarbeiter').setAttribute('datasources',url);
//Lehreinheitgruppe tree setzen
url='../rdf/lehreinheitgruppe.rdf.php?lehreinheit_id='+lehreinheit_id;
url='../rdf/lehreinheitgruppe.rdf.php?lehreinheit_id='+lehreinheit_id+"&"+gettimestamp();
document.getElementById('lfvt_detail_tree_lehreinheitgruppe').setAttribute('datasources',url);
}
@@ -685,17 +685,29 @@ function lfvt_LehreinheitMitarbeiterAuswahl()
// ************* GRUPPEN ******************** //
// ****
// * Observer fuer GruppenTree (testing)
// ****
var lfvt_detail_gruppe_observer = {
onBeginLoad: function(aSink) { },
onInterrupt: function(aSink) { },
onResume: function(aSink) { },
onEndLoad: function(aSink) {
tree = document.getElementById('lfvt_detail_tree_lehreinheitgruppe');
tree.builder.rebuild();
},
onError: function(aSink, aStatus, aErrorMsg) { }
};
// ****
// * Loescht die Zuordnung einer Gruppe zu einer
// * Lehreinheit
// ****
function lfvt_LehreinheitGruppeDel()
{
alert('del');
return false;
tree = document.getElementById('lfvt_detail_tree_lehreinheitgruppe');
//Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen
//Nachsehen ob Gruppe markiert wurde
var idx;
if(tree.currentIndex>=0)
idx = tree.currentIndex;
@@ -741,4 +753,137 @@ function lfvt_LehreinheitGruppeDel()
function lfvt_LehreinheitGruppeAdd()
{
}
/**
* (Wenn gedroppt wird)
* Speichert die Zuteilung einer Gruppe zu einer Lehreinheit
*/
function lfvt_detail_gruppe_dragdrop(event)
{
event.stopPropagation();
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
try {
dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService);
}
catch (e)
{
debug('treeDragDrop: e');
}
var ds = dragservice_ds;
var ses = ds.getCurrentSession()
var sourceNode = ses.sourceNode
var lehreinheit_id = document.getElementById('lfvt_detail_textbox_lehreinheit_id').value;
var row = { }
var col = { }
var child = { }
if(lehreinheit_id=='')
return false;
//Quelle holen (Gruppe)
var flavourset = new FlavourSet();
flavourset.appendFlavour("gruppe");
var transferData = nsTransferable.get(flavourset, getDragData, true);
quell_gruppe=transferData.first.first.data;
var arr = quell_gruppe.split("&");
var stg_kz = arr[0];
var sem = arr[1];
var ver = arr[2];
var grp = arr[3];
var gruppe = arr[4];
//alert("stg: "+stg_kz+" sem: "+sem+" ver: "+ver+" grp: "+grp+" gruppe: "+gruppe+" TO Lehreinheit:"+lehreinheit_id);
var req = new phpRequest('lfvtCUD.php','','');
neu = document.getElementById('lfvt_detail_checkbox_new').checked;
req.add('type','lehreinheit_gruppe_add');
req.add('lehreinheit_id', lehreinheit_id);
req.add('studiengang_kz', stg_kz);
req.add('semester', sem);
req.add('verband', ver);
req.add('gruppe', grp);
req.add('gruppe_kurzbz', gruppe);
var response = req.executePOST();
if (response!='ok')
{
alert(response);
}
else
{
//GruppenTree Refreshen
tree = document.getElementById('lfvt_detail_tree_lehreinheitgruppe');
tree.builder.addListener(lfvt_detail_gruppe_observer);
tree.builder.refresh();
}
}
var dragservice_ds;
/**
* Holt die Daten aus der DragSession
*/
function getDragData(aFlavourSet)
{
var ds = dragservice_ds;
var ses = ds.getCurrentSession()
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var supportsArray = Components.classes["@mozilla.org/supports-array;1"]
.createInstance(Components.interfaces.nsISupportsArray);
for (var i = 0; i < ses.numDropItems; ++i)
{
var trans = nsTransferable.createTransferable();
for (var j = 0; j < aFlavourSet.flavours.length; ++j)
trans.addDataFlavor(aFlavourSet.flavours[j].contentType);
ses.getData(trans, i);
supportsArray.AppendElement(trans);
}
return supportsArray;
}
/**
* Drag ueber den Tree
*/
function lfvt_detail_gruppe_dragover( event )
{
var validFlavor = false;
var dragSession = null;
var targetNode = event.target
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var dragService = Components.classes["@mozilla.org/widget/dragservice;1"].
getService().QueryInterface(Components.interfaces.nsIDragService);
if( dragService )
{
dragSession = dragService.getCurrentSession();
if( dragSession )
{
if( dragSession.isDataFlavorSupported("gruppe") )
validFlavor = true;
else if ( dragSession.isDataFlavorSupported("gruppe") )
validFlavor = true;
if ( validFlavor )
{
//Style action
//targetNode.style.backgroundColor = "red";
//targetNode.style.color = "red";
//event.originalTarget.style.color = "red";
dragSession.canDrop = true;
event.stopPropagation();
}
}
}
}
+56 -2
View File
@@ -15,7 +15,7 @@ function auswahlValues()
}
function onVerbandSelect()
{
{
var contentFrame=document.getElementById('iframeTimeTableWeek');
var tree=document.getElementById('tree-verband');
var stg_kz=tree.view.getCellText(tree.currentIndex,"stg_kz");
@@ -212,4 +212,58 @@ function parseRDFString(str, url)
parser.parseString(memoryDS,baseUri,str);
return memoryDS;
}
}
/**
* Wird zu Beginn einer DragnDrop Session aufgerufen.
* Hier werden die Flayvour und die zu uebertragenden Daten
* festgelegt.
*/
function treeVerbandDragGesture(event)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
var tree = document.getElementById('tree-verband')
var row = { }
var col = { }
var child = { }
debug('treeVerbandDragGesture');
//Index der Quell-Row ermitteln
tree.treeBoxObject.getCellAt(event.pageX, event.pageY, row, col, child)
//Wenn es keine Row ist sondern ein Header oder Scrollbar dann das DnD abbrechen
if (!col.value)
return false;
//Daten holen
col = tree.columns ? tree.columns["stg_kz"] : "stg_kz";
stg_kz=tree.view.getCellText(row.value,col);
col = tree.columns ? tree.columns["sem"] : "sem";
sem=tree.view.getCellText(row.value,col);
col = tree.columns ? tree.columns["ver"] : "ver";
ver=tree.view.getCellText(row.value,col);
col = tree.columns ? tree.columns["grp"] : "grp";
grp=tree.view.getCellText(row.value,col);
col = tree.columns ? tree.columns["gruppe"] : "gruppe";
gruppe=tree.view.getCellText(row.value,col);
var ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService);
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
//Flavour anhaengen
trans.addDataFlavor("gruppe");
var textWrapper = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
//Daten anhaengen
textWrapper.data = stg_kz+'&'+sem+'&'+ver+'&'+grp+'&'+gruppe;
trans.setTransferData("gruppe", textWrapper, textWrapper.data.length*2);
var transArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);
transArray.AppendElement(trans);
// Actually start dragging
ds.invokeDragSession(event.target, transArray, null, ds.DRAGDROP_ACTION_COPY + ds.DRAGDROP_ACTION_MOVE);
event.stopPropagation();
}
+3 -1
View File
@@ -26,7 +26,9 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/stpl-semester-overlay.xul.php"?>';
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js"/>
<tree id="tree-verband" onselect="onVerbandSelect();"
seltype="single" hidecolumnpicker="false" flex="1"
seltype="single" hidecolumnpicker="false" flex="1"
enableColumnDrag="true"
ondraggesture="treeVerbandDragGesture(event);"
datasources="../rdf/lehrverbandsgruppe.rdf.php" ref="http://www.technikum-wien.at/lehrverbandsgruppe/alle-verbaende"
>
<treecols>