From dab267d74c4c2ae011b3d1fe32a72304ad14bc5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 20 Mar 2007 17:00:16 +0000 Subject: [PATCH] =?UTF-8?q?-=20Drag=20und=20Drop=20Lektoren=20zu=20einem?= =?UTF-8?q?=20Studiengang=20m=C3=B6glich?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/DragAndDrop.js | 4 +- content/dragboard.js.php | 81 ++++++++++++++++++++++++++ content/fas.xul.php | 39 ++++++------- content/fasoverlay.js.php | 60 +++++++++++++++++++- content/fasoverlay.xul.php | 43 +++----------- content/tempus.js.php | 2 +- content/tempusDBDML.php | 46 ++++++++++++--- include/benutzerfunktion.class.php | 8 ++- include/mitarbeiter.class.php | 79 ++++++++++++++++++++++++++ rdf/mitarbeiter.rdf.php | 91 ++++++++++++++++++++++++------ 10 files changed, 369 insertions(+), 84 deletions(-) diff --git a/content/DragAndDrop.js b/content/DragAndDrop.js index 99dae2373..4924a5d32 100644 --- a/content/DragAndDrop.js +++ b/content/DragAndDrop.js @@ -351,7 +351,9 @@ var nsDragAndDrop = this.mDragSession = this.mDragService.getCurrentSession(); if (!this.mDragSession) return false; - this.mDragSession.canDrop = this.mDragSession.sourceNode != aEvent.target; + //oesi - Auskommentiert um das DragnDrop innerhalb des selben Trees zu ermoeglichen + //this.mDragSession.canDrop = this.mDragSession.sourceNode != aEvent.target; + this.mDragSession.canDrop = true; if ("canDrop" in aDragDropObserver) this.mDragSession.canDrop &= aDragDropObserver.canDrop(aEvent, this.mDragSession); return true; diff --git a/content/dragboard.js.php b/content/dragboard.js.php index 7324ca3b9..2a35347b0 100644 --- a/content/dragboard.js.php +++ b/content/dragboard.js.php @@ -84,6 +84,7 @@ var lvbgrpDDObserver= } }; + // **** // * Observer fuer den Gruppen Tree im Lehreinheiten-Modul // **** @@ -193,6 +194,86 @@ var mitarbeiterDDObserver= } }; +// **** +// * 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!=0) + { + 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! + window.setTimeout(RefreshLektorTree,10); + } + } + } +}; + // **** // * Observer fuer Lektor-Tree bei Lehreinheit-Modul // * Bei OnDrop eines mitarbeiters wird dieser der diff --git a/content/fas.xul.php b/content/fas.xul.php index 911d804af..8ff582145 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -24,14 +24,14 @@ if(!$benutzer->loadVariables($uid)) echo ''; echo ''; ?> - + ';