r9678 - helma-ng/trunk/modules/helma
[email protected] Mon, 27 Apr 2009 16:46:15 +0200 (CEST)
| Newsgroups | gmane.comp.java.helma.cvs |
|---|---|
| Message-ID | <20090427144615.400423D0D6@mia> |
Author: hannes
Date: 2009-04-27 16:46:15 +0200 (Mon, 27 Apr 2009)
New Revision: 9678
Modified:
helma-ng/trunk/modules/helma/skin.js
Log:
Make helma/skin.render() accept a helma resource as first argument.
Details at http://dev.helma.org/trac/helma/changeset/9678
Modified: helma-ng/trunk/modules/helma/skin.js
===================================================================
--- helma-ng/trunk/modules/helma/skin.js 2009-04-27 14:46:13 UTC (rev 9677)
+++ helma-ng/trunk/modules/helma/skin.js 2009-04-27 14:46:15 UTC (rev 9678)
@@ -16,27 +16,29 @@
/**
* Parse a skin from a resource and render it using the given context.
- * @param skinOrPath a skin object or a file name
+ * @param skinOrResource a skin object, helma resource, or file name
* @param context the skin render context
* @param scope optional scope object for relative resource lookup
*/
-function render(skinOrPath, context, scope) {
+function render(skinOrResource, context, scope) {
scope = scope || this;
var skin;
- if (typeof(skinOrPath.render) == "function") {
- skin = skinOrPath;
- } else if (typeof(skinOrPath) == "string") {
+ if (typeof(skinOrResource.render) == "function") {
+ skin = skinOrResource;
+ } else if (skinOrResource instanceof org.helma.repository.Resource) {
+ skin = createSkin(skinOrResource, scope);
+ } else if (typeof(skinOrResource) == "string") {
var subskin;
- if (skinOrPath.indexOf('#') > -1) {
- [skinOrPath, subskin] = skinOrPath.split('#');
+ if (skinOrResource.indexOf('#') > -1) {
+ [skinOrResource, subskin] = skinOrResource.split('#');
}
- var resource = scope.getResource(skinOrPath);
+ var resource = scope.getResource(skinOrResource);
skin = createSkin(resource, scope);
if (subskin) {
skin = skin.getSubskin(subskin);
}
} else {
- throw Error("Unknown skin object: " + skinOrPath);
+ throw Error("Unknown skin object: " + skinOrResource);
}
return skin.render(context);
}
@@ -177,11 +179,11 @@
if (isDefined(elem)) {
if (elem[last + suffix] instanceof Function) {
return value === undefined ?
- elem[last + suffix].call(elem, macro, self, context) :
- elem[last + suffix].call(elem, value, macro, self, context);
+ elem[last + suffix].call(elem, macro, context, self) :
+ elem[last + suffix].call(elem, value, macro, context, self);
} else if (value === undefined && isDefined(elem[last])) {
if (elem[last] instanceof Function) {
- return elem[last].call(elem, macro, self, context);
+ return elem[last].call(elem, macro, context, self);
} else {
return elem[last];
}