diff --git a/cms/admin.php b/cms/admin.php
index 433336569..6ca982e6a 100644
--- a/cms/admin.php
+++ b/cms/admin.php
@@ -104,7 +104,7 @@ $berechtigte_oe = $rechte->getOEkurzbz('basis/cms')
function openDMS()
{
- window.open ("cms/tinymce_dms.php","DMS","resizable=1,width=800,height=600");
+ window.open ("cms/tinymce_dms.php","DMS","resizable=1,width=800,height=600,scrollbars=1");
}
diff --git a/cms/tinymce_dms.php b/cms/tinymce_dms.php
index 424c5c921..c1379d157 100644
--- a/cms/tinymce_dms.php
+++ b/cms/tinymce_dms.php
@@ -23,7 +23,7 @@ require_once('../config/cis.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/dms.class.php');
-
+$user = get_uid();
?>
@@ -149,13 +149,16 @@ require_once('../include/dms.class.php');
version='0';
+ $dms->kategorie_kurzbz=$kategorie_kurzbz;
}
$dms->insertamum=date('Y-m-d H:i:s');
@@ -203,12 +207,17 @@ if($importFile != '')
$dms->mimetype= mime_content_type(IMPORT_PATH.$importFile);
$dms->filename = $filename;
$dms->name = $importFile;
- $dms->kategorie_kurzbz=$kategorie_kurzbz;
-
+
if($dms->save(true))
{
echo 'File wurde erfolgreich hochgeladen. Filename:'.$filename.' ID:'.$dms->dms_id;
$dms_id=$dms->dms_id;
+
+ if($projekt_kurzbz!='' || $projektphase_id!='')
+ {
+ if(!$dms->saveProjektzuordnung($dms_id, $projekt_kurzbz, $projektphase_id))
+ echo $dms->errormsg;
+ }
}
else
echo 'Fehler beim Speichern der Daten';
@@ -254,6 +263,7 @@ if(isset($_POST['fileupload']))
else
{
$dms->version='0';
+ $dms->kategorie_kurzbz=$kategorie_kurzbz;
}
$dms->insertamum=date('Y-m-d H:i:s');
@@ -261,12 +271,17 @@ if(isset($_POST['fileupload']))
$dms->mimetype=$_FILES['userfile']['type'];
$dms->filename = $filename;
$dms->name = $_FILES['userfile']['name'];
- $dms->kategorie_kurzbz=$kategorie_kurzbz;
-
+
if($dms->save(true))
{
echo 'File wurde erfolgreich hochgeladen. Filename:'.$filename.' ID:'.$dms->dms_id;
$dms_id=$dms->dms_id;
+
+ if($projekt_kurzbz!='' || $projektphase_id!='')
+ {
+ if(!$dms->saveProjektzuordnung($dms_id, $projekt_kurzbz, $projektphase_id))
+ echo $dms->errormsg;
+ }
}
else
{
@@ -396,12 +411,33 @@ else
+
+
Files im Import Ordner
';
drawFilesFromImport();
echo'
';
+ if($openupload)
+ {
+ echo '';
+ }
}
@@ -454,7 +490,8 @@ function drawAllVersions($id)
*/
function drawFilesFromImport()
{
- global $kategorie_kurzbz;
+ global $kategorie_kurzbz, $projekt_kurzbz, $projektphase_id;
+
if ($handle = opendir(IMPORT_PATH))
{
echo '';
closedir($handle);
}
diff --git a/content/bindings.css b/content/bindings.css
index 7d550516e..a1cf43255 100644
--- a/content/bindings.css
+++ b/content/bindings.css
@@ -20,4 +20,9 @@ box.Standort
box.Firma
{
-moz-binding: url('bindings.xml.php#Firma');
+}
+
+box.Notiz
+{
+ -moz-binding: url('notiz.xml.php#Notiz');
}
\ No newline at end of file
diff --git a/content/notiz.window.js.php b/content/notiz.window.js.php
new file mode 100755
index 000000000..39ef4ecf2
--- /dev/null
+++ b/content/notiz.window.js.php
@@ -0,0 +1,66 @@
+
+ */
+
+require_once('../config/vilesci.config.inc.php');
+
+?>
+
+// ****
+// * Laedt die zu bearbeitenden Daten
+// ****
+function NotizInit(id)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ if(id!='')
+ {
+ //Daten holen
+ var url = 'rdf/notiz.rdf.php?notiz_id='+id+'&'+gettimestamp();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
+ getService(Components.interfaces.nsIRDFService);
+
+ var dsource = rdfService.GetDataSourceBlocking(url);
+
+ var subject = rdfService.GetResource("http://www.technikum-wien.at/notiz/" + id);
+
+ var predicateNS = "http://www.technikum-wien.at/notiz/rdf";
+
+ //RDF parsen
+
+ titel = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titel" ));
+
+ }
+ else
+ {
+ //Defaultwerte bei Neuem Datensatz
+ titel='';
+ }
+
+ document.getElementById('notiz-textbox-titel').value=titel;
+}
+
+// ****
+// * Speichern der Daten
+// ****
+function NotizSpeichern()
+{
+ alert('Noch nicht implementiert');
+}
\ No newline at end of file
diff --git a/content/notiz.window.xul.php b/content/notiz.window.xul.php
new file mode 100755
index 000000000..1605ead41
--- /dev/null
+++ b/content/notiz.window.xul.php
@@ -0,0 +1,74 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+header("Cache-Control: no-cache");
+header("Cache-Control: post-check=0, pre-check=0",false);
+header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
+header("Pragma: no-cache");
+header("Content-type: application/vnd.mozilla.xul+xml");
+
+include('../config/vilesci.config.inc.php');
+echo ''."\n";
+
+echo '';
+echo '';
+
+if(isset($_GET['id']) && is_numeric($_GET['id']))
+ $id=$_GET['id'];
+else
+ $id='';
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/content/notiz.xml.php b/content/notiz.xml.php
new file mode 100755
index 000000000..474956d49
--- /dev/null
+++ b/content/notiz.xml.php
@@ -0,0 +1,268 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+require_once('../config/vilesci.config.inc.php');
+header("Content-type: application/vnd.mozilla.xul+xml");
+
+echo '';
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ try
+ {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ tree = document.getAnonymousElementByAttribute(this ,'anonid', 'tree-notiz');
+ var col = tree.columns.getColumnFor(document.getAnonymousElementByAttribute(this ,'anonid', 'treecol-notiz-notiz_id'));
+ return tree.view.getCellText(tree.currentIndex, col);
+ }
+ catch(e)
+ {
+ return false;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ rdf/notiz.rdf.php?ts="+gettimestamp();
+ datasource = datasource+"&projekt_kurzbz="+encodeURIComponent(projekt_kurzbz);
+ datasource = datasource+"&projektphase_id="+encodeURIComponent(projektphase_id);
+ datasource = datasource+"&projekttask_id="+encodeURIComponent(projekttask_id);
+ datasource = datasource+"&uid="+encodeURIComponent(uid);
+ datasource = datasource+"&person_id="+encodeURIComponent(person_id);
+ datasource = datasource+"&prestudent_id="+encodeURIComponent(prestudent_id);
+ datasource = datasource+"&bestellung_id="+encodeURIComponent(bestellung_id);
+
+ var tree = document.getAnonymousElementByAttribute(this ,'anonid', 'tree-notiz');
+
+ //Alte DS entfernen
+ var oldDatasources = tree.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ tree.database.RemoveDataSource(oldDatasources.getNext());
+ }
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ this.TreeNotizDatasource = rdfService.GetDataSource(datasource);
+ this.TreeNotizDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ this.TreeNotizDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ tree.database.AddDataSource(this.TreeNotizDatasource);
+ if(addobserver)
+ {
+ this.TreeNotizDatasource.addXMLSinkObserver({
+ notiz: this,
+ onBeginLoad: function(aSink)
+ {},
+
+ onInterrupt: function(aSink)
+ {},
+
+ onResume: function(aSink)
+ {},
+
+ onEndLoad: function(aSink)
+ {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ //aSink.removeXMLSinkObserver(this);
+ debug('onEndLoad start Rebuild');
+ var tree = document.getAnonymousElementByAttribute(this.notiz ,'anonid', 'tree-notiz');
+ tree.builder.rebuild();
+ },
+
+ onError: function(aSink, aStatus, aErrorMsg)
+ { alert("error! " + aErrorMsg); }
+ });
+ tree.builder.addListener({
+ willRebuild : function(builder)
+ {
+ },
+ didRebuild : function(builder)
+ {
+ debug("didrebuild");
+ //builder.removeListener(this);
+ }
+ });
+ }
+ }
+ catch(e)
+ {
+ debug("Notiz load failed with exception: "+e);
+ }
+ ]]>
+
+
+
+
+
+ content/notiz.window.xul.php'+param,'Notiz','chrome, status=no, width=500, height=350, centerscreen, resizable');
+ ]]>
+
+
+
+
+ var projekt_kurzbz = this.getAttribute('projekt_kurzbz');
+ var projektphase_id = this.getAttribute('projektphase_id');
+ var projekttask_id = this.getAttribute('projekttask_id');
+ var uid = this.getAttribute('uid');
+ var person_id = this.getAttribute('person_id');
+ var prestudent_id = this.getAttribute('prestudent_id');
+ var bestellung_id = this.getAttribute('bestellung_id');
+
+ this.LoadNotizTree(projekt_kurzbz,projektphase_id,projekttask_id,uid,person_id,prestudent_id,bestellung_id, true);
+
+
+ debug('Notiz Binding Stop');
+
+
+
+
+ this.openNotiz(this.value);
+
+
+
+
diff --git a/content/planner.overlay.js.php b/content/planner.overlay.js.php
index 1ae608f47..09a093e6c 100755
--- a/content/planner.overlay.js.php
+++ b/content/planner.overlay.js.php
@@ -23,6 +23,7 @@ include('../config/vilesci.config.inc.php');
var datasourceTreeProjekt;
var datasourceTreeProjektphase;
var datasourceTreeProjekttask;
+var datasourceTreeDokument;
function treeProjektmenueSelect()
{
@@ -171,6 +172,52 @@ function treeProjektmenueSelect()
document.getElementById('projekttask-toolbar-del').disabled=true;
+ // Dokumente laden
+ if(projekt_phase_id!='' || projekt_kurzbz!='')
+ {
+ document.getElementById('toolbarbutton-projektdokument-neu').disabled=false;
+ try
+ {
+
+ if(projekt_phase_id!='')
+ url = "rdf/dms.rdf.php?projektphase_id="+projekt_phase_id+"&"+gettimestamp();
+ else if(projekt_kurzbz!='')
+ url = "rdf/dms.rdf.php?projekt_kurzbz="+projekt_kurzbz+"&"+gettimestamp();
+
+ var treeDokument=document.getElementById('tree-projektdokument');
+
+ //Alte DS entfernen
+ var oldDatasources = treeDokument.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ treeDokument.database.RemoveDataSource(oldDatasources.getNext());
+ }
+
+ try
+ {
+ datasourceTreeDokument.removeXMLSinkObserver(DokumentTreeSinkObserver);
+ treeDokument.builder.removeListener(DokumentTreeListener);
+ }
+ catch(e)
+ {}
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ datasourceTreeDokument = rdfService.GetDataSource(url);
+ datasourceTreeDokument.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ datasourceTreeDokument.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ treeDokument.database.AddDataSource(datasourceTreeDokument);
+ datasourceTreeDokument.addXMLSinkObserver(DokumentTreeSinkObserver);
+ treeDokument.builder.addListener(DokumentTreeListener);
+ }
+ catch(e)
+ {
+ debug("whoops Documents load failed with exception: "+e);
+ }
+ }
+ else
+ document.getElementById('toolbarbutton-projektdokument-neu').disabled=true;
+
+
if(projekt_kurzbz!='')
{
//Neu Button bei Tasks aktivieren
diff --git a/content/planner.overlay.xul.php b/content/planner.overlay.xul.php
index fd3b665c6..aef88f9cb 100755
--- a/content/planner.overlay.xul.php
+++ b/content/planner.overlay.xul.php
@@ -10,6 +10,7 @@ echo '
echo '';
echo '';
/*echo '';*/
+echo '';
echo '';
?>
@@ -105,7 +106,7 @@ echo '';
-
+
@@ -115,7 +116,7 @@ echo '';
-
+
@@ -125,6 +126,9 @@ echo '';
+
+
+
+
diff --git a/content/projekt/projektdokument.overlay.js.php b/content/projekt/projektdokument.overlay.js.php
new file mode 100755
index 000000000..4191625f5
--- /dev/null
+++ b/content/projekt/projektdokument.overlay.js.php
@@ -0,0 +1,198 @@
+
+ */
+
+require_once('../../config/vilesci.config.inc.php');
+
+?>
+// *********** Globale Variablen *****************//
+
+var DokumentSelectID=null; //ID des Dokuments das nach dem Refresh markiert werden soll
+// ********** Observer und Listener ************* //
+
+// ****
+// * Observer fuer Dokument Tree
+// * startet Rebuild nachdem das Refresh
+// * der datasource fertig ist
+// ****
+var DokumentTreeSinkObserver =
+{
+ onBeginLoad : function(pSink) {},
+ onInterrupt : function(pSink) {},
+ onResume : function(pSink) {},
+ onError : function(pSink, pStatus, pError) { debug('onerror:'+pError); },
+ onEndLoad : function(pSink)
+ {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ document.getElementById('tree-projektdokument').builder.rebuild();
+ }
+};
+
+// ****
+// * Nach dem Rebuild wird das Dokument wieder
+// * markiert
+// ****
+var DokumentTreeListener =
+{
+ willRebuild : function(builder)
+ {
+ },
+ didRebuild : function(builder)
+ {
+ //timeout nur bei Mozilla notwendig da sonst die rows
+ //noch keine values haben. Ab Seamonkey funktionierts auch
+ //ohne dem setTimeout
+ window.setTimeout(DokumentTreeSelectDokument,10);
+ // Progressmeter stoppen
+ //document.getElementById('statusbar-progressmeter').setAttribute('mode','determined');
+ }
+};
+
+// ****************** FUNKTIONEN ************************** //
+
+// ****
+// * Asynchroner (Nicht blockierender) Refresh des Dokument Trees
+// ****
+function ProjektDokumentTreeRefresh()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ //markiertes Dokument global speichern damit es nach dem
+ //refresh wieder markiert werden kann.
+ var tree = document.getElementById('tree-projektdokument');
+
+ try
+ {
+ DokumentSelectID = getTreeCellText(tree, "treecol-projektdokument-dms_id", tree.currentIndex);
+ }
+ catch(e)
+ {
+ DokumentSelectID=null;
+ }
+ datasourceTreeDokument.Refresh(false); //non blocking
+}
+
+// ****
+// * Selectiert das Dokument nachdem der Tree
+// * rebuildet wurde.
+// ****
+function DokumentTreeSelectDokument()
+{
+ var tree=document.getElementById('tree-projektdokument');
+ var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
+
+ //In der globalen Variable ist die zu selektierende ID gespeichert
+ if(DokumentSelectID!=null)
+ {
+ for(var i=0;icms/dms.php?id='+id);
+ }
+ }
+ catch(e)
+ {
+ alert(e);
+ return false;
+ }
+}
+
+function ProjektDokumentNeu()
+{
+ var tree=document.getElementById('tree-projektmenue');
+
+ if(tree.currentIndex==-1)
+ {
+ alert('Bitte markieren Sie zuerst ein Projekt oder eine Phase');
+ return false;
+ }
+
+ var projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
+ var projekt_phase_id=getTreeCellText(tree, "treecol-projektmenue-projekt_phase_id", tree.currentIndex);
+
+ if(projekt_phase_id!='')
+ var url = 'cms/tinymce_dms.php?kategorie_kurzbz=Projekt&openupload=true&projekt_phase_id='+projekt_phase_id;
+ else if(projekt_kurzbz!='')
+ var url = 'cms/tinymce_dms.php?kategorie_kurzbz=Projekt&openupload=true&projekt_kurzbz='+projekt_kurzbz;
+ else
+ {
+ alert('Bitte zuerst eine Phase oder ein Projekt markieren');
+ return false;
+ }
+
+ window.open(url);
+}
+
+function ProjektDokumentNeueVersion()
+{
+ var tree=document.getElementById('tree-projektdokument');
+
+ if(tree.currentIndex==-1)
+ {
+ alert('Bitte markieren Sie zuerst einen Eintrag');
+ return false;
+ }
+
+ var dms_id=getTreeCellText(tree, "treecol-projektdokument-dms_id", tree.currentIndex);
+ var projekt_phase_id=getTreeCellText(tree, "treecol-projektdokument-projektphase_id", tree.currentIndex);
+ var projekt_kurzbz=getTreeCellText(tree, "treecol-projektdokument-projekt_kurzbz", tree.currentIndex);
+
+
+ if(projekt_phase_id!='')
+ var url = 'cms/tinymce_dms.php?kategorie_kurzbz=Projekt&openupload=true&newVersionID='+dms_id+'&projekt_phase_id='+projekt_phase_id;
+ else if(projekt_kurzbz!='')
+ var url = 'cms/tinymce_dms.php?kategorie_kurzbz=Projekt&openupload=true&&newVersionID='+dms_id+'&projekt_kurzbz='+projekt_kurzbz;
+ else
+ {
+ alert('Bitte zuerst eine Phase oder ein Projekt markieren');
+ return false;
+ }
+
+ window.open(url);
+}
\ No newline at end of file
diff --git a/content/projekt/projektdokument.overlay.xul.php b/content/projekt/projektdokument.overlay.xul.php
new file mode 100755
index 000000000..48e05f753
--- /dev/null
+++ b/content/projekt/projektdokument.overlay.xul.php
@@ -0,0 +1,121 @@
+
+ */
+
+header("Cache-Control: no-cache");
+header("Cache-Control: post-check=0, pre-check=0",false);
+header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
+header("Pragma: no-cache");
+header("Content-type: application/vnd.mozilla.xul+xml");
+
+require_once('../../config/vilesci.config.inc.php');
+
+echo '';
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/include/dms.class.php b/include/dms.class.php
index ace5b1659..a956e972a 100644
--- a/include/dms.class.php
+++ b/include/dms.class.php
@@ -62,7 +62,7 @@ class dms extends basis_db
*/
public function load($dms_id, $version=null)
{
- $qry = "SELECT * FROM campus.tbl_dms WHERE dms_id='".addslashes($dms_id)."'";
+ $qry = "SELECT tbl_dms.dms_id, * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id) WHERE dms_id='".addslashes($dms_id)."'";
if(!is_null($version))
$qry.=" AND version='".addslashes($version)."'";
@@ -110,9 +110,18 @@ class dms extends basis_db
if($new)
{
+ $qry = "BEGIN;";
if($this->dms_id=='')
- $dms_id="nextval('campus.seq_dms_dms_id')";
+ {
+ $dms_id="currval('campus.seq_dms_dms_id')";
+
+ $qry.="INSERT INTO campus.tbl_dms(oe_kurzbz, dokument_kurzbz, kategorie_kurzbz)
+ VALUES(".
+ $this->addslashes($this->oe_kurzbz).','.
+ $this->addslashes($this->dokument_kurzbz).','.
+ $this->addslashes($this->kategorie_kurzbz).');';
+ }
else
{
if(!is_numeric($this->dms_id))
@@ -122,14 +131,12 @@ class dms extends basis_db
}
$dms_id=$this->dms_id;
}
- $qry = "BEGIN;INSERT INTO campus.tbl_dms(dms_id, version, oe_kurzbz, dokument_kurzbz, kategorie_kurzbz,
+
+ $qry.="INSERT INTO campus.tbl_dms_version(dms_id, version,
filename, mimetype, name, beschreibung, letzterzugriff, insertamum, insertvon,
updateamum, updatevon) VALUES(".
$dms_id.','.
$this->addslashes($this->version).','.
- $this->addslashes($this->oe_kurzbz).','.
- $this->addslashes($this->dokument_kurzbz).','.
- $this->addslashes($this->kategorie_kurzbz).','.
$this->addslashes($this->filename).','.
$this->addslashes($this->mimetype).','.
$this->addslashes($this->name).','.
@@ -145,7 +152,9 @@ class dms extends basis_db
$qry = "UPDATE campus.tbl_dms SET".
" oe_kurzbz=".$this->addslashes($this->oe_kurzbz).",".
" dokument_kurzbz=".$this->addslashes($this->dokument_kurzbz).",".
- " kategorie_kurzbz=".$this->addslashes($this->kategorie_kurzbz).",".
+ " kategorie_kurzbz=".$this->addslashes($this->kategorie_kurzbz)." ".
+ " WHERE dms_id='".addslashes($this->dms_id)."';".
+ "UPDATE campus.tbl_dms_version SET".
" filename=".$this->addslashes($this->filename).",".
" mimetype=".$this->addslashes($this->mimetype).",".
" name=".$this->addslashes($this->name).",".
@@ -204,7 +213,7 @@ class dms extends basis_db
*/
public function touch($dms_id, $version)
{
- $qry ="UPDATE campus.tbl_dms SET letzterzugriff=now()
+ $qry ="UPDATE campus.tbl_dms_version SET letzterzugriff=now()
WHERE dms_id='".addslashes($dms_id)."' AND version='".addslashes($version)."';";
if($this->db_query($qry))
@@ -258,11 +267,12 @@ class dms extends basis_db
*/
public function getDocuments($kategorie_kurzbz)
{
- $qry = "SELECT * FROM campus.tbl_dms where (dms_id, version) in(
- SELECT dms_id, max(version)
- FROM campus.tbl_dms
- WHERE kategorie_kurzbz='".addslashes($kategorie_kurzbz)."'
- GROUP BY dms_id)
+ $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
+ WHERE (dms_id, version) in(
+ SELECT dms_id, max(version)
+ FROM campus.tbl_dms_version
+ GROUP BY dms_id)
+ AND kategorie_kurzbz='".addslashes($kategorie_kurzbz)."'
ORDER BY name;";
if($result = $this->db_query($qry))
@@ -302,7 +312,7 @@ class dms extends basis_db
*/
public function search($suchstring)
{
- $qry = "SELECT * FROM campus.tbl_dms
+ $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
WHERE lower(name) like lower('%".addslashes($suchstring)."%')
OR lower(beschreibung) like lower('%".addslashes($suchstring)."%')
;";
@@ -350,7 +360,7 @@ class dms extends basis_db
return false;
}
- $qry = "SELECT * FROM campus.tbl_dms
+ $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
WHERE dms_id = '".addslashes($id)."' ORDER BY version ASC;";
if($result = $this->db_query($qry))
@@ -391,7 +401,7 @@ class dms extends basis_db
*/
public function checkVersion($id, $version)
{
- $qry = "SELECT * FROM campus.tbl_dms
+ $qry = "SELECT * FROM campus.tbl_dms_version
WHERE dms_id = '".addslashes($id)."' and
version > '".addslashes($version)."' ;";
@@ -408,5 +418,152 @@ class dms extends basis_db
return false;
}
}
+
+ /**
+ * Laedt die Dokumente eines Projekts
+ *
+ * @param $kategorie_kurzbz
+ */
+ public function getDokumenteProjekt($projekt_kurzbz)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ campus.tbl_dms
+ JOIN campus.tbl_dms_version USING(dms_id)
+ JOIN fue.tbl_projekt_dokument USING(dms_id)
+ WHERE (dms_id, version) in(
+ SELECT dms_id, max(version)
+ FROM campus.tbl_dms_version
+ GROUP BY dms_id)
+ AND tbl_projekt_dokument.projekt_kurzbz='".addslashes($projekt_kurzbz)."'
+ ORDER BY name;";
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new dms();
+
+ $obj->dms_id = $row->dms_id;
+ $obj->version = $row->version;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->dokument_kurzbz = $row->dokument_kurzbz;
+ $obj->kategorie_kurzbz = $row->kategorie_kurzbz;
+ $obj->filename = $row->filename;
+ $obj->mimetype = $row->mimetype;
+ $obj->name = $row->name;
+ $obj->beschreibung = $row->beschreibung;
+ $obj->letzterzugriff = $row->letzterzugriff;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+
+ $this->result[] = $obj;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt die Dokumente einer Projektphase
+ *
+ * @param $kategorie_kurzbz
+ */
+ public function getDokumenteProjektphase($projektphase_id)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ campus.tbl_dms
+ JOIN campus.tbl_dms_version USING(dms_id)
+ JOIN fue.tbl_projekt_dokument USING(dms_id)
+ WHERE (dms_id, version) in(
+ SELECT dms_id, max(version)
+ FROM campus.tbl_dms_version
+ GROUP BY dms_id)
+ AND tbl_projekt_dokument.projektphase_id='".addslashes($projektphase_id)."'
+ ORDER BY name;";
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new dms();
+
+ $obj->dms_id = $row->dms_id;
+ $obj->version = $row->version;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->dokument_kurzbz = $row->dokument_kurzbz;
+ $obj->kategorie_kurzbz = $row->kategorie_kurzbz;
+ $obj->filename = $row->filename;
+ $obj->mimetype = $row->mimetype;
+ $obj->name = $row->name;
+ $obj->beschreibung = $row->beschreibung;
+ $obj->letzterzugriff = $row->letzterzugriff;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+
+ $this->result[] = $obj;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Speichert die Zuordnung eines Dokuments zu einem Projekt
+ * Wenn die Zuordnung bereits vorhanden ist, geschieht nichts
+ *
+ * @param $dms_id
+ * @param $projekt_kurzbz
+ * @param $projektphase_id
+ */
+ function saveProjektzuordnung($dms_id, $projekt_kurzbz, $projektphase_id)
+ {
+ $qry = "SELECT * FROM fue.tbl_projekt_dokument WHERE dms_id='".addslashes($dms_id)."'";
+
+ if($projekt_kurzbz!='')
+ $qry.=" AND projekt_kurzbz='".addslashes($projekt_kurzbz)."'";
+ if($projektphase_id!='')
+ $qry.=" AND projektphase_id='".addslashes($projektphase_id)."'";
+
+ if($result = $this->db_query($qry))
+ {
+ if($this->db_num_rows($result)==0)
+ {
+ //keine Zuordnung vorhanden -> anlegen
+ $qry = "INSERT INTO fue.tbl_projekt_dokument(projektphase_id, projekt_kurzbz, dms_id) VALUES(".
+ $this->addslashes($projektphase_id).','.
+ $this->addslashes($projekt_kurzbz).','.
+ $this->addslashes($dms_id).');';
+
+ if($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Zuteilen des Dokuments zu einem Projekt';
+ return false;
+ }
+ }
+ else
+ return true; //Zuordnung bereits vorhanden
+ }
+ else
+ {
+ $this->errormsg = 'Fehler bei einer Datenbankabfrage';
+ return false;
+ }
+ }
}
?>
\ No newline at end of file
diff --git a/rdf/dms.rdf.php b/rdf/dms.rdf.php
new file mode 100755
index 000000000..43bfa6488
--- /dev/null
+++ b/rdf/dms.rdf.php
@@ -0,0 +1,73 @@
+
+ */
+header("Content-type: application/xhtml+xml");
+echo '';
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/functions.inc.php');
+require_once('../include/dms.class.php');
+
+$rdf_url='http://www.technikum-wien.at/dms/';
+
+
+$dms = new dms();
+$projekt_kurzbz='';
+$projektphase_id='';
+if(isset($_GET['projekt_kurzbz']))
+{
+ $projekt_kurzbz=$_GET['projekt_kurzbz'];
+ $dms->getDokumenteProjekt($projekt_kurzbz);
+}
+elseif(isset($_GET['projektphase_id']))
+{
+ $projektphase_id = $_GET['projektphase_id'];
+ $dms->getDokumenteProjektphase($projektphase_id);
+}
+else
+ die('projekt_kurzbz oder projektphase_id muss uebergeben werden');
+
+echo '
+';
+
+$descr='';
+$sequenz='';
+foreach($dms->result as $row)
+{
+ $descr.='
+ '.$row->dms_id.'
+ '.$projekt_kurzbz.'
+ '.$projektphase_id.'
+ '.$row->name.'
+ '.$row->insertamum.'
+ '.$row->updateamum.'
+ '.$row->insertvon.'
+ '.$row->updatevon.'
+ '."\n";
+
+ $sequenz.=''."\n";
+}
+$sequenz=''."\n\t".$sequenz.'
+ '."\n";
+echo $descr."\n";
+echo $sequenz;
+echo '';
+?>
\ No newline at end of file