, * Andreas Oesterreicher and * Rudolf Hangl . */ include('../vilesci/config.inc.php'); ?> function lehrstunde(id,idList) { this.id=id; this.idList=idList; } var lehrstunden=new Array(); /***** Drag Observer fuer Lehrveranstaltungen *****/ //zum verplanen der LVAs im Stundenplan var lvaObserver= { onDragStart: function (evt,transferData,action) { var idList=evt.target.getAttribute("idList"); var aktion=evt.target.getAttribute("aktion"); aktion+="_set"; var paramList="?aktion="+aktion+"&lva_ids="+idList; transferData.data=new TransferData(); transferData.data.addDataForFlavour("application/tempus-lehrveranstaltung",paramList); //alert("test"); } }; /***** Drag Observer fuer Gruppen *****/ var lvbgrpDDObserver= { onDragStart: function (evt,transferData,action) { var tree = document.getElementById('tree-verband') var row = { } var col = { } var child = { } //Index der Quell-Row ermitteln tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) //Beim Scrollen soll kein DnD gemacht werden if(col.value==null) return false; //Daten ermitteln 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 paramList= stg_kz+'&'+sem+'&'+ver+'&'+grp+'&'+gruppe; //debug('param:'+paramList); transferData.data=new TransferData(); transferData.data.addDataForFlavour("application/tempus-lvbgruppe",paramList); } }; /***** Drag Observer fuer Studenten *****/ var studentDDObserver= { onDragStart: function (evt,transferData,action) { var tree = document.getElementById('student-tree') var row = { } var col = { } var child = { } //Index der Quell-Row ermitteln tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) //Beim Scrollen soll kein DnD gemacht werden if(col.value==null) return false; var start = new Object(); var end = new Object(); var numRanges = tree.view.selection.getRangeCount(); var paramList= ''; for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; uid = tree.view.getCellText(v,col); if(uid=='') { alert('Es koennen nur Personen mit UID (Studenten/Mitarbeiter) verschoben werden'); return false; } paramList += ';'+uid; } } transferData.data=new TransferData(); transferData.data.addDataForFlavour("application/tempus-student",paramList); } }; // **** // * Observer fuer den Gruppen Tree im Lehreinheiten-Modul // **** var LeLvbgrpDDObserver= { getSupportedFlavours : function () { var flavours = new FlavourSet(); flavours.appendFlavour("application/tempus-lvbgruppe"); return flavours; }, onDragEnter: function (evt,flavour,session) { }, onDragExit: function (evt,flavour,session) { }, onDragOver: function(evt,flavour,session) { }, onDrop: function (evt,dropdata,session) { 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('lehrveranstaltung-detail-textbox-lehreinheit_id').value; var row = { } var col = { } var child = { } if(lehreinheit_id=='') return false; quell_gruppe=dropdata.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('lvplanung/lehrveranstaltungDBDML.php','',''); neu = document.getElementById('lehrveranstaltung-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(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg); } else { //GruppenTree Refreshen LeDetailGruppeTreeRefresh(); LvTreeRefresh(); } } }; /***** Drag Observer fuer Lektoren *****/ var mitarbeiterDDObserver= { onDragStart: function (evt,transferData,action) { var tree = document.getElementById('tree-lektor') var row = { } var col = { } var child = { } //Index der Quell-Row ermitteln tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) //Beim Scrollen soll kein DnD gemacht werden if(col.value==null) return false; //Daten ermitteln col = tree.columns ? tree.columns["uid"] : "uid"; uid=tree.view.getCellText(row.value,col); var paramList= uid; transferData.data=new TransferData(); transferData.data.addDataForFlavour("application/tempus-mitarbeiter",paramList); } }; // **** // * Observer fuer Drop eines Lektors auf einen Studiengang // **** var LektorFunktionDDObserver= { getSupportedFlavours : function () { var flavours = new FlavourSet(); flavours.appendFlavour("application/tempus-mitarbeiter"); return flavours; }, onDragEnter: function (evt,flavour,session) { }, onDragExit: function (evt,flavour,session) { }, onDragOver: function(evt,flavour,session) { }, onDrop: function (evt,dropdata,session) { 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 tree = document.getElementById('tree-lektor') var row = { } var col = { } var child = { } //Index der Quell-Row ermitteln tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) //Beim Scrollen soll kein DnD gemacht werden if(col.value==null) return false; //Daten ermitteln col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz"; var stg=tree.view.getCellText(row.value,col); if(stg=='') { alert('Mitarbeiter kann nur auf einen Studiengang gezogen werden'); return false; } uid=dropdata.data; var req = new phpRequest('tempusDBDML.php','',''); req.add('type', 'addFunktionToMitarbeiter'); req.add('uid', uid); req.add('studiengang_kz', stg); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg) } else { //Tree Refreshen //keine Ahnung warum ich da ein setTimeout brauche //aber wenns nicht da ist dann stuerzt Mozilla ab?! //mit seamonkey funktionierts auch ohne! LektorTreeOpenStudiengang = stg; window.setTimeout(RefreshLektorTree,10); } } }; // **** // * Observer fuer Lektor-Tree bei Lehreinheit-Modul // * Bei OnDrop eines mitarbeiters wird dieser der // * Lehreinheit zugeordnet // **** var LeLektorDDObserver= { getSupportedFlavours : function () { var flavours = new FlavourSet(); flavours.appendFlavour("application/tempus-mitarbeiter"); return flavours; }, onDragEnter: function (evt,flavour,session) { }, onDragExit: function (evt,flavour,session) { }, onDragOver: function(evt,flavour,session) { }, onDrop: function (evt,dropdata,session) { 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('lehrveranstaltung-detail-textbox-lehreinheit_id').value; var row = { } var col = { } var child = { } if(lehreinheit_id=='') return false; uid=dropdata.data; //alert("uid: "+uid); var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; req.add('type','lehreinheit_mitarbeiter_add'); req.add('lehreinheit_id', lehreinheit_id); req.add('mitarbeiter_uid', uid); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg) } else { //LektorTree Refreshen LeLektorTreeRefresh(); } } }; /***** Drag Observer fuer STPL-Verschiebung *****/ var listObserver= { onDragStart: function (evt,transferData,action) { var type=evt.target.getAttribute("stpltype"); var dragdatum=evt.target.getAttribute("datum"); var pers_uid=evt.target.getAttribute("pers_uid"); var idList=evt.target.getAttribute("idList"); var stg_kz=evt.target.getAttribute("stg_kz"); var sem=evt.target.getAttribute("sem"); var ver=evt.target.getAttribute("ver"); var grp=evt.target.getAttribute("grp"); var einheit=evt.target.getAttribute("einheit"); var old_ort=evt.target.getAttribute("ort"); var aktion=evt.target.getAttribute("aktion"); aktion+="_set"; var paramList="?dragtype="+type+"&dragdatum="+dragdatum+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit+"&old_ort="+old_ort+idList+"&aktion="+aktion; //var transferObjekt=new lehrstunde(type,dragdatum,pers_uid,stg_kz,sem,ver,grp,einheit,old_ort,idList); transferData.data=new TransferData(); transferData.data.addDataForFlavour("application/tempus-lehrstunde",paramList); var styleOrig=evt.target.getAttribute("styleOrig"); evt.target.setAttribute("style",styleOrig+"color:red;font-style:italic;"); } }; /***** Board Observer fuer STPL- und LVA-Verschiebung *****/ var boardObserver= { /*canHandleMultipleItems : function() { var canHandleMultipleItems=false; },*/ getSupportedFlavours : function () { var flavours = new FlavourSet(); flavours.appendFlavour("application/tempus-lehrveranstaltung"); flavours.appendFlavour("application/tempus-lehrstunde"); return flavours; }, onDragEnter: function (evt,flavour,session) { var styleNow=evt.target.getAttribute("style"); if (evt.target.tagName=="label") evt.target.setAttribute("style","background-color:#AAFFAA;"); else evt.target.setAttribute("style",styleNow+"border:1px dashed black;"); }, onDragExit: function (evt,flavour,session) { var styleNow=evt.target.getAttribute("style"); if (evt.target.tagName=="label") evt.target.setAttribute("style",""); else evt.target.setAttribute("style",styleNow+"border:1px solid black;"); }, onDragOver: function(evt,flavour,session) { // Mehrfachauswahl von Lehrstunden mit CTRL bzw. ALT-Taste if ((evt.ctrlKey || evt.altKey) && flavour.contentType=="application/tempus-lehrstunde" && evt.target.tagName=="button") { var idList=evt.target.getAttribute("idList"); var id=evt.target.getAttribute("id"); var styleOrig=evt.target.getAttribute("styleOrig"); // Ist Element schon vorhanden und an welcher stelle im Array? var gesetzt=null; for (var i=0;i