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