twingle/twingle/content/navigation navigation.js,1.7,1.8

[email protected] Fri, 14 Mar 2003 06:05:33 -0700 (MST)
Newsgroups gmane.comp.cms.oscom.twingle.cvs
Message-ID <[email protected]>
Update of /cvs/root/twingle/twingle/content/navigation
In directory alpha.oscom.org:/tmp/cvs-serv16851/twingle/content/navigation

Modified Files:
	navigation.js 
Log Message:
paul rocked adding delete site and add site and rsd discovery


Index: navigation.js
===================================================================
RCS file: /cvs/root/twingle/twingle/content/navigation/navigation.js,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** navigation.js	11 Mar 2003 10:23:43 -0000	1.7
--- navigation.js	14 Mar 2003 13:05:31 -0000	1.8
***************
*** 100,103 ****
--- 100,105 ----
  
  
+ 
+ 
  SitesDataSource.prototype.openSelectedResource = function () 
  {
***************
*** 181,184 ****
--- 183,300 ----
          return;
      }
+ 
+ }
+ 
+ SitesDataSource.prototype.deleteResource=
+   function ()
+ {
+     var urn = this.getSelectedResource();
+ 
+     if (! urn) {
+     	alert("Please select a resource to delete.");
+ 	return;
+     }
+ 
+     var urn = urn.getValue();
+     var selectedsite = this.sitesds.getNode(urn);
+     var resourcetype = selectedsite.getTarget(this.resourcetypeprop).getValue();
+     
+     if (resourcetype != "urn:oscom:resourcetypes:site") {
+         
+ 	alert("You cannot delete a " + resourcetype);
+ 	return;
+     }
+ 
+     /* Only delete if you get a valid response back from the server */
+     /* todo: remove from array */
+     this.sitesds.deleteRecursive(urn);
+     this.sitesds.save();
+ 
+     return;
+ }
+ 
+ 
+ 
+ SitesDataSource.prototype.retrieveSiteContents=
+ // function (site_name, site_realm, site_url, site_username, site_password)
+ function (siteurl, ds)
+ {
+ 
+     //    alert('url for the site rsd ' + url);
+ 
+     function myfunc (e) {
+         //alert('in myfunc');
+ 	if (p.readyState != 4) {
+ 	    return;
+ 	}
+ 
+         var holder;
+ 
+ 	var status = p.status + ": " + p.statusText + "\n";
+ 	var status = status + p.getAllResponseHeaders() + "\n\n";
+ 	var status = status + p.responseText;
+ 	//document.getElementById("responsetext").firstChild.nodeValue = status;
+         if (p.responseXML) {
+             p.ds.parseFromString(p.responseText, siteurl);
+             /* todo: don't rebuild tree if you don't have to */
+ 
+ 	    var tree=document.getElementById(sitesds.elementid);
+ 	    tree.database.AddDataSource(p.ds.getRawDataSource());
+ 	    tree.builder.rebuild();
+         }
+     };
+ 
+     var p = new XMLHttpRequest();
+     p.ds = ds;
+     p.onreadystatechange = myfunc;
+     p.open("GET", siteurl);
+     p.send(null);
+ 
+ 
+ };
+ 
+ SitesDataSource.prototype.addSite=
+ // function (site_name, site_realm, site_url, site_username, site_password)
+ function (site_name, site_url)
+ {
+ 
+     /* The realm is used in URNs while the name is for the display */
+     var sc=this.sitesds.getNode("urn:twingle:sites")
+                .getTarget(this.subitemsprop);
+     var newsite=this.sitesds.getNode("urn:twingle:sites:" + site_url);
+     var siteres = this.sitesds.getNode("urn:oscom:resourcetypes:site");
+     sc.addChild(newsite);
+ 
+ 
+     // Now fill in the data for the new site
+     newsite.addTarget(this.titleprop,site_name);
+     newsite.addTarget(this.urlprop,site_url);
+     //newsite.addTarget(this.usernameprop,site_username);
+     //newsite.addTarget(this.passwordprop,site_password);
+     newsite.addTarget(this.resourcetypeprop,siteres);
+ 
+     // Prepare the area for pseudo-folders (Configurations, Content, etc.)
+     var subitemsurn = "urn:twingle:sites:" + site_url + ":subitems";
+     var subitems = this.sitesds.getNode(subitemsurn);
+     subitems.makeSeq();
+     newsite.addTarget(this.subitemsprop,subitems);
+ 
+     /* Finally, create a site datasource and load the contents for this site */
+     /*
+         var ds = this.sitedatasources[site_url];
+          if (! ds) {
+ 	var ds = new RDFDataSource();
+ 	this.sitedatasources[site_url] = ds;
+     }
+     
+ 
+     this.sitesds.save();
+     */
+     
+     var ds = new RDFDataSource();
+     this.retrieveSiteContents(site_url,ds);
+     this.sitesds.save();
+     
+     return;
  
  }