You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2008/04/02 12:12:10 UTC
svn commit: r643830 - in /incubator/sling/trunk:
launchpad/content/src/main/resources/content/sling-test/sling/
sling/servlets-post/ sling/servlets-post/src/main/resources/bundles/
sling/servlets-post/src/main/resources/bundles/sling/ sling/servlets-po...
Author: bdelacretaz
Date: Wed Apr 2 03:11:54 2008
New Revision: 643830
URL: http://svn.apache.org/viewvc?rev=643830&view=rev
Log:
SLING-351 - Use uppercase Sling in sling.js, and sling.js moved to /bundles/sling/sling.js as /sling/sling.js is hidden by the OSGi console
Added:
incubator/sling/trunk/sling/servlets-post/src/main/resources/bundles/
incubator/sling/trunk/sling/servlets-post/src/main/resources/bundles/sling/
- copied from r643785, incubator/sling/trunk/sling/servlets-post/src/main/resources/sling/
Removed:
incubator/sling/trunk/sling/servlets-post/src/main/resources/sling/
Modified:
incubator/sling/trunk/launchpad/content/src/main/resources/content/sling-test/sling/sling-test.html
incubator/sling/trunk/sling/servlets-post/pom.xml
incubator/sling/trunk/sling/servlets-post/src/main/resources/bundles/sling/sling.js
Modified: incubator/sling/trunk/launchpad/content/src/main/resources/content/sling-test/sling/sling-test.html
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/launchpad/content/src/main/resources/content/sling-test/sling/sling-test.html?rev=643830&r1=643829&r2=643830&view=diff
==============================================================================
--- incubator/sling/trunk/launchpad/content/src/main/resources/content/sling-test/sling/sling-test.html (original)
+++ incubator/sling/trunk/launchpad/content/src/main/resources/content/sling-test/sling/sling-test.html Wed Apr 2 03:11:54 2008
@@ -18,9 +18,9 @@
-->
<head>
- <title>µjax test page</title>
+ <title>Sling client library test page</title>
- <script src="/sling/sling.js"></script>
+ <script src="/bundles/sling/sling.js"></script>
<script src="assert.js"></script>
<style type="text/css">
@@ -41,13 +41,13 @@
<body onload="runTests()">
-<h1>Automated µjax tests</h1>
+<h1>Automated Sling client library tests</h1>
<p class="warning">TODO: for now, running these tests requires setting <em>Allow
Anonymous Access</em> to <em>false</em> on the Sling <em>Authentication
Filter</em> configuration page.</p>
<p>Loading this page executes some simple automated javascript tests
-of the µjax library.</p>
+of the Sling client library.</p>
<h2>Test results</h2>
<p>If all goes well, the paragraph styled <span class="output">like
@@ -67,7 +67,7 @@
<script language="javascript">
function slingPost(url,params) {
- var httpcon = sling.getXHR();
+ var httpcon = Sling.getXHR();
httpcon.open("POST", url, false);
httpcon.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpcon.setRequestHeader("Content-length", params.length);
@@ -87,7 +87,7 @@
}
function verifyPostedElement() {
- var data = sling.getContent(testPath,1);
+ var data = Sling.getContent(testPath,1);
assertNotNull("data",data);
assertEquals("title matches","hello",data.title);
assertEquals("time matches",now,data.time);
@@ -99,7 +99,8 @@
}
function testGetSessionInfo() {
- var session = sling.getSessionInfo();
+ var session = Sling.getSessionInfo();
+ assertNotNull("Sling.getSessionInfo()", session);
assertEquals("session.userID is a string","string",typeof(session.userID));
assertEquals("session.userID == 'admin'","admin",session.userID);
assertEquals("session.workspace is a string","string",typeof(session.workspace));
@@ -111,19 +112,19 @@
var c = slingPost(deletePath,"title=hello&created=&dummy=&time=" + now);
assert("Expected 200 status for POST",c.status == 200);
- var data = sling.getContent(deletePath,1);
+ var data = Sling.getContent(deletePath,1);
assertNotNull("data must be found before removeContent",data);
- var d = sling.removeContent(deletePath);
+ var d = Sling.removeContent(deletePath);
assert("Expected 200 status for removeContent, got " + d.status,d.status == 200);
- data = sling.getContent(deletePath,1);
+ data = Sling.getContent(deletePath,1);
assertNull("data should be gone after deletePath (" + deletePath + ")",data);
}
function testJsonLevels() {
var c = slingPost(baseTestPath + "/json-levels", "title=JsonLevelsTest");
- var data0 = sling.getContent(baseTestPath,0);
- var data1 = sling.getContent(baseTestPath,1);
+ var data0 = Sling.getContent(baseTestPath,0);
+ var data1 = Sling.getContent(baseTestPath,1);
assert("Level 0 must not provide child", typeof data0['json-levels'] == "undefined");
assert("Level 1 must provide child", typeof data1['json-levels'] == "object");
assert("Level 1 must provide child title", data1['json-levels'].title == "JsonLevelsTest");
Modified: incubator/sling/trunk/sling/servlets-post/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-post/pom.xml?rev=643830&r1=643829&r2=643830&view=diff
==============================================================================
--- incubator/sling/trunk/sling/servlets-post/pom.xml (original)
+++ incubator/sling/trunk/sling/servlets-post/pom.xml Wed Apr 2 03:11:54 2008
@@ -64,7 +64,7 @@
org.apache.sling.servlets.post.impl
</Private-Package>
<Sling-Bundle-Resources>
- /sling/sling.js
+ /bundles/sling/sling.js
</Sling-Bundle-Resources>
</instructions>
</configuration>
Modified: incubator/sling/trunk/sling/servlets-post/src/main/resources/bundles/sling/sling.js
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/servlets-post/src/main/resources/bundles/sling/sling.js?rev=643830&r1=643785&r2=643830&view=diff
==============================================================================
--- incubator/sling/trunk/sling/servlets-post/src/main/resources/bundles/sling/sling.js (original)
+++ incubator/sling/trunk/sling/servlets-post/src/main/resources/bundles/sling/sling.js Wed Apr 2 03:11:54 2008
@@ -22,38 +22,38 @@
* @version $Rev: $, $Date: 2007-03-27 16:30:52 +0200 (Tue, 27 Mar 2007) $
*/
-var sling = null;
+var Sling = null;
// start sling code scope
(function() {
- sling = new Object();
- sling.NAME_OF_THIS_FILE = "sling.js";
+ Sling = new Object();
+ Sling.NAME_OF_THIS_FILE = "Sling.js";
/** This method tries to figure out what to do with a page */
- sling.wizard = function() {
+ Sling.wizard = function() {
//TODO add lots of magic here
var form=document.getElementById("slingform");
if (!form) form=document.forms[0];
if (form) {
var sp=new Object();
sp.formElement=form;
- sling.setupPage(sp);
+ Sling.setupPage(sp);
}
}
/** Call this to merge sling data in an HTML page
TODO deprecate other functions
*/
- sling.setupPage = function(options) {
- var tree = sling.getContent(sling._getJsonUrl(),1);
+ Sling.setupPage = function(options) {
+ var tree = Sling.getContent(Sling._getJsonUrl(),1);
if(options.formElement) {
- sling._setFormValues(options.formElement,sling._getJsonUrl(),tree);
+ Sling._setFormValues(options.formElement,Sling._getJsonUrl(),tree);
}
if(options.displayElement) {
- sling.displayValues(options.displayElement,tree);
+ Sling.displayValues(options.displayElement,tree);
}
}
@@ -63,8 +63,8 @@
* @return the XHR object, use .responseText for the data
* @type String
*/
- sling.httpGet = function(url) {
- var httpcon = sling.getXHR();
+ Sling.httpGet = function(url) {
+ var httpcon = Sling.getXHR();
if (httpcon) {
httpcon.open('GET', url, false);
httpcon.send(null);
@@ -81,14 +81,14 @@
* @return The result
* @type String
*/
- sling.dumpObj = function(obj, level) {
+ Sling.dumpObj = function(obj, level) {
var res="";
for (var a in obj) {
if (typeof(obj[a])!="object") {
res+=a+":"+obj[a]+" ";
} else {
res+=a+": { ";
- res+=sling.dumpObj(obj[a])+"} ";
+ res+=Sling.dumpObj(obj[a])+"} ";
}
}
return (res);
@@ -102,7 +102,7 @@
* @return An Array of names of properties that exist in a tree
* @type Array
*/
- sling.getAllPropNames = function(obj, names) {
+ Sling.getAllPropNames = function(obj, names) {
var root=false;
if (!names) {
names=new Object();
@@ -134,10 +134,10 @@
* @return An Object tree of content nodes and properties, null if not found
* @type Object
*/
- sling.getContent = function(path, maxlevels, filter) {
+ Sling.getContent = function(path, maxlevels, filter) {
var obj=new Object();
if (!path) {
- path=sling.currentPath;
+ path=Sling.currentPath;
}
if (path.indexOf("/")==0) {
/*
@@ -151,7 +151,7 @@
} else {
maxlevels = "";
}
- path=sling.baseurl + path + maxlevels + ".json";
+ path=Sling.baseurl + path + maxlevels + ".json";
}
//checking for a trailing "/*"
if (path.indexOf("/*")>=0) return obj;
@@ -159,10 +159,10 @@
// TODO for now we explicitely defeat caching on this...there must be a better way
// but in tests IE6 tends to cache too much
var passThroughCacheParam = "?clock=" + new Date().getTime();
- var res=sling.httpGet(path + passThroughCacheParam + (maxlevels?"&maxlevels="+maxlevels:""));
+ var res=Sling.httpGet(path + passThroughCacheParam + (maxlevels?"&maxlevels="+maxlevels:""));
if(res.status == 200) {
- var obj=sling.evalString(res.responseText);
+ var obj=Sling.evalString(res.responseText);
if (!filter) {
for (var a in obj) {
if (a.indexOf("jcr:")==0) delete(obj[a]);
@@ -174,11 +174,11 @@
}
/** Remove content by path */
- sling.removeContent = function(path) {
- var httpcon = sling.getXHR();
+ Sling.removeContent = function(path) {
+ var httpcon = Sling.getXHR();
if (httpcon) {
var params = "sling:post:delete="+path;
- httpcon.open('POST', sling.baseurl + path, false);
+ httpcon.open('POST', Sling.baseurl + path, false);
// Send the proper header information along with the request
httpcon.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
@@ -192,7 +192,7 @@
}
/** eval str, accepting various object delimiters */
- sling.evalString = function(str) {
+ Sling.evalString = function(str) {
var obj = null;
if(str.indexOf('[')==0) {
eval("obj="+str);
@@ -209,16 +209,16 @@
* @return An Object tree containing the session information, null if server status <> 200
* @type Object
*/
- sling.getSessionInfo = function() {
- var res=sling.httpGet(sling.baseurl+"/sling.sessionInfo.json");
+ Sling.getSessionInfo = function() {
+ var res=Sling.httpGet(Sling.baseurl+"/system/sling/info.sessionInfo.json");
if(res.status == 200) {
- return sling.evalString(res.responseText);
+ return Sling.evalString(res.responseText);
}
return null;
}
/** Replace extension in a path */
- sling._replaceExtension = function(path,newExtension) {
+ Sling._replaceExtension = function(path,newExtension) {
var i = path.lastIndexOf(".");
if(i >= 0) path = path.substring(0,i);
i = path.lastIndexOf(".");
@@ -229,17 +229,17 @@
/** Get the JSON data URL that for the current page
* (assuming a .extension for the current page, .html or something else)
*/
- sling._getJsonUrl = function() {
- return sling._replaceExtension(window.location.href,".json");
+ Sling._getJsonUrl = function() {
+ return Sling._replaceExtension(window.location.href,".json");
}
/** Get the content repository path from the URL
* (assuming a .extension for the current page, .html or something else)
*/
- sling._getPath = function() {
+ Sling._getPath = function() {
- var noextensions=sling._replaceExtension(window.location.href,"");
- var path=noextensions.substring(sling.baseurl.length);
+ var noextensions=Sling._replaceExtension(window.location.href,"");
+ var path=noextensions.substring(Sling.baseurl.length);
return (path);
}
@@ -247,15 +247,15 @@
* with an id like ./stuff, has its innerHTML set to the value of stuff
* in the tree, if it exists.
*/
- sling.displayValues = function(container,tree) {
+ Sling.displayValues = function(container,tree) {
if(!tree) {
- tree = sling.getContent(sling._getJsonUrl(),1);
+ tree = Sling.getContent(Sling._getJsonUrl(),1);
}
var elements = container.getElementsByTagName("*");
var toSet = new Array();
for (var i = 0; i < elements.length; i++) {
- var value = sling._getElementValue(elements[i],tree);
+ var value = Sling._getElementValue(elements[i],tree);
if(value) {
toSet[toSet.length] = { e:elements[i], v:value };
}
@@ -267,7 +267,7 @@
}
/** If e has an ID that matches a property of tree, set e's innerHTML accordingly */
- sling._getElementValue = function(e,tree) {
+ Sling._getElementValue = function(e,tree) {
var id = e.getAttribute("id");
if(id) {
return tree[id.substring(2)];
@@ -284,7 +284,7 @@
* Returns an object indicating whether data was found on the server.
*
*/
- sling._setFormValues = function(form, path, tree) {
+ Sling._setFormValues = function(form, path, tree) {
var result = new Object();
/** TODO: deal with abolute paths?
@@ -295,7 +295,7 @@
form.setAttribute("action", path);
if (!tree) {
- tree=sling.getContent(path,1);
+ tree=Sling.getContent(path,1);
}
var elems=form.elements;
@@ -320,7 +320,7 @@
if (a.indexOf("/")==0) {
var nodepath=a.substring(0,a.lastIndexOf("/"));
var propname=a.substring(a.lastIndexOf("/")+1);
- var node=sling.getContent(nodepath);
+ var node=Sling.getContent(nodepath);
var propval=node[propname];
} else if (a.indexOf(formfieldprefix)==0) {
var propname=a.substring(formfieldprefix.length);
@@ -356,7 +356,7 @@
* @return The Path parameter isolated from the URL
* @type String
*/
- sling.TODO_NOT_USED_isolatePathFromUrl = function(url) {
+ Sling.TODO_NOT_USED_isolatePathFromUrl = function(url) {
var pattern = "[\\?&]Path=([^&#]*)";
var regex = new RegExp( pattern );
var results = regex.exec( url );
@@ -372,7 +372,7 @@
* Get an XMLHttpRequest in a portable way
*
*/
- sling.getXHR = function () {
+ Sling.getXHR = function () {
var xhr=null;
if(!xhr) {
@@ -412,9 +412,9 @@
// obtain the base_url to communicate with sling on the server
var scripts = document.getElementsByTagName("SCRIPT")
var script = scripts[scripts.length-1].src
- sling.baseurl = script.substring(0,script.length - ("/" + sling.NAME_OF_THIS_FILE.length));
- sling.currentPath = sling._getPath();
- sling.isNew = (sling.currentPath.indexOf("/*")>=0)?true:false;
+ Sling.baseurl = script.substring(0,script.length - ("/" + Sling.NAME_OF_THIS_FILE.length));
+ Sling.currentPath = Sling._getPath();
+ Sling.isNew = (Sling.currentPath.indexOf("/*")>=0)?true:false;
// end sling code scope
})();