You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2012/01/18 21:48:11 UTC
svn commit: r1233057 - in /incubator/wookie/trunk/widgets/templates/browse:
default.widget.properties scripts/browse_controller.js
Author: scottbw
Date: Wed Jan 18 20:48:11 2012
New Revision: 1233057
URL: http://svn.apache.org/viewvc?rev=1233057&view=rev
Log:
Enable basic support of JSON APIs in the Browse template
Modified:
incubator/wookie/trunk/widgets/templates/browse/default.widget.properties
incubator/wookie/trunk/widgets/templates/browse/scripts/browse_controller.js
Modified: incubator/wookie/trunk/widgets/templates/browse/default.widget.properties
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/widgets/templates/browse/default.widget.properties?rev=1233057&r1=1233056&r2=1233057&view=diff
==============================================================================
--- incubator/wookie/trunk/widgets/templates/browse/default.widget.properties (original)
+++ incubator/wookie/trunk/widgets/templates/browse/default.widget.properties Wed Jan 18 20:48:11 2012
@@ -5,6 +5,8 @@
# order = the sort order for APIs that support it
browse.index.url="http://localhost:8080/wookie/widgets?all=true"
+browse.format="xml"
+
#
# The template string to use for the collection of items to browse. This is used to hold
# the set of items to display.
Modified: incubator/wookie/trunk/widgets/templates/browse/scripts/browse_controller.js
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/widgets/templates/browse/scripts/browse_controller.js?rev=1233057&r1=1233056&r2=1233057&view=diff
==============================================================================
--- incubator/wookie/trunk/widgets/templates/browse/scripts/browse_controller.js (original)
+++ incubator/wookie/trunk/widgets/templates/browse/scripts/browse_controller.js Wed Jan 18 20:48:11 2012
@@ -28,7 +28,12 @@ var ${widget.shortname}_browse_controlle
var query = "";
var searchUrl = '${browse.search.url}';
if(searchUrl === "") $("#searchPanel").hide();
- ${widget.shortname}_browse_controller.update();
+ ${widget.shortname}_browse_controller.update();
+ //
+ // If there is a "requiresLogin" attribute, don't
+ // trigger search just yet
+ //
+ if(!${widget.shortname}_browse_controller.requiresLogin)
${widget.shortname}_browse_controller.search()
},
@@ -151,7 +156,7 @@ ${widget.shortname}_browse_controller.tr
$.support.cors = true; // force cross-site scripting (as of jQuery 1.5)
$.ajax({
url: src,
- dataType: "xml",
+ dataType: ${browse.format},
async: false,
success: function(xml){
output = ${widget.shortname}_browse_controller.transformXml(xml, type);
@@ -183,7 +188,8 @@ ${widget.shortname}_browse_controller.tr
* replace placeholders in the template with values from the XML using the ItemElements
* and ItemAttrobutes lists
*/
- $(xml).find(${browse.item.name}).each(
+ var elements = ${widget.shortname}_browse_controller.find(xml,${browse.item.name});
+ $(elements).each(
function(){
var item = template;
var elements = ${browse.item.elements}.split(",");
@@ -212,4 +218,17 @@ ${widget.shortname}_browse_controller.tr
output = items;
}
return output;
+}
+
+/**
+ * Obtain collection of objects to operate on, either
+ * XML elements or JSON objects
+ */
+${widget.shortname}_browse_controller.find = function(data, name){
+ if (${browse.format}==="xml"){
+ return $(data).find(name);
+ } else {
+ if (!name || name === "") return data;
+ return data[name];
+ }
}
\ No newline at end of file