Author: chathura
Date: Thu Jan 10 22:55:01 2008
New Revision: 12132

Log:


Implementing the support for browing, adding, removing resource properties in 
the UI using AJAX.



Modified:
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/PropertiesUtil.java
   
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/resource-properties.jsp
   trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js
   trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   Thu Jan 10 22:55:01 2008
@@ -27,10 +27,7 @@
 import org.wso2.registry.web.actions.*;
 import org.wso2.registry.web.beans.AdminBean;
 import org.wso2.registry.web.beans.VersionsBean;
-import org.wso2.registry.web.utils.AdminUtil;
-import org.wso2.registry.web.utils.TagUtil;
-import org.wso2.registry.web.utils.ResourcesUtil;
-import org.wso2.registry.web.utils.UserUtil;
+import org.wso2.registry.web.utils.*;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
@@ -296,6 +293,14 @@
                 response.sendRedirect("/wso2registry/web" + path);
                 //forwardToResources(request, response, path);
 
+            } else if (command.equals("/setProperty")) {
+
+                PropertiesUtil.setProperty(request, response);
+
+            } else if (command.equals("/removeProperty")) {
+
+                PropertiesUtil.removeProperty(request, response);
+
             } else if (command.equals("/addUserToRole")) {
 
                 String userName = request.getParameter("userName");

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
 (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
 Thu Jan 10 22:55:01 2008
@@ -53,6 +53,7 @@
     public static final String VERSIONS_JSP = "/admin/versions.jsp";
     public static final String AJAX_RATING_JSP = "/admin/ajax_rating.jsp";
     public static final String AJAX_DESCRIPTION_JSP = "/admin/ajax_desc.jsp";
+    public static final String AJAX_PROPERTIES_JSP = 
"/admin/ajax/resource-properties.jsp";
     public static final String RESOURCE_DETAILS_JSP = 
"/admin/resources_details.jsp";
     public static final String ERROR_JSP = "/admin/error.jsp";
 }

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
       (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
       Thu Jan 10 22:55:01 2008
@@ -168,6 +168,7 @@
         this.lastUpdater = resource.getLastUpdaterUserName();
         this.mediaType = resource.getMediaType();
         this.averageRating = registry.getAverageRating(resource.getPath());
+        this.properties = resource.getProperties();
 
         Tag[] t = registry.getTags(resource.getPath());
         for (int i = 0; i < t.length; i++) {

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/PropertiesUtil.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/PropertiesUtil.java
        (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/PropertiesUtil.java
        Thu Jan 10 22:55:01 2008
@@ -19,12 +19,61 @@
 import org.wso2.registry.secure.SecureRegistry;
 import org.wso2.registry.RegistryException;
 import org.wso2.registry.Resource;
+import org.wso2.registry.web.UIConstants;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletException;
 import java.util.Properties;
+import java.io.IOException;
 
 public class PropertiesUtil {
 
+    public static void setProperty(HttpServletRequest request, 
HttpServletResponse response) {
+
+        String resourcePath = request.getParameter("resourcePath");
+        String propertyName = request.getParameter("propertyName");
+        String propertyValue = request.getParameter("propertyValue");
+
+        try {
+            setProperty(resourcePath, propertyName, propertyValue, request);
+
+        } catch (RegistryException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            request.getSession().setAttribute("resourcePath", resourcePath);
+            
request.getRequestDispatcher(UIConstants.AJAX_PROPERTIES_JSP).forward(request, 
response);
+        } catch (ServletException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void removeProperty(HttpServletRequest request, 
HttpServletResponse response) {
+
+        String resourcePath = request.getParameter("resourcePath");
+        String propertyName = request.getParameter("propertyName");
+
+        try {
+            removeProperty(resourcePath, propertyName, request);
+
+        } catch (RegistryException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            request.getSession().setAttribute("resourcePath", resourcePath);
+            
request.getRequestDispatcher(UIConstants.AJAX_PROPERTIES_JSP).forward(request, 
response);
+        } catch (ServletException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
     public static Properties getResourceProperties(String resourcePath, 
HttpServletRequest request)
             throws RegistryException {
 
@@ -44,6 +93,7 @@
         Resource resource = secureRegistry.get(resourcePath);
 
         resource.setProperty(propertyName, propertyValue);
+        secureRegistry.put(resource.getPath(), resource);
     }
 
     public static void removeProperty(String resourcePath, String 
propertyName, HttpServletRequest request) throws RegistryException {
@@ -52,5 +102,6 @@
         Resource resource = secureRegistry.get(resourcePath);
 
         resource.getProperties().remove(propertyName);
+        secureRegistry.put(resource.getPath(), resource);
     }
 }

Modified: 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/resource-properties.jsp
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/resource-properties.jsp
   (original)
+++ 
trunk/registry/modules/webapps/src/main/webapp/admin/ajax/resource-properties.jsp
   Thu Jan 10 22:55:01 2008
@@ -9,10 +9,8 @@
   To change this template use File | Settings | File Templates.
 --%>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<h2>Properties</h2>
-
 <%
-    String resourcePath = request.getParameter("resourcePath");
+    String resourcePath = (String) 
request.getSession().getAttribute("resourcePath");
     Properties props = PropertiesUtil.getResourceProperties(resourcePath, 
request);
 
     Iterator iProps = props.keySet().iterator();
@@ -22,7 +20,7 @@
         String value = (String) props.get(name);
 
         %>
-        <strong><%=name%></strong>: <%=value%>
+        <strong><%=name%></strong>: <%=value%> <input type="button" 
value="Remove" onclick="removeProperty('<%=name%>')"/> <br/>
         <%
     }
 %>

Modified: trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js   
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js   Thu Jan 
10 22:55:01 2008
@@ -243,6 +243,22 @@
     }
 }
 
+function setProperty() {
+
+    var resourcePath = document.getElementById('propRPath').value;
+    var propertyName = document.getElementById('propName').value;
+    var propertyValue = document.getElementById('propValue').value;
+    document.getElementById('propName').value = "";
+    document.getElementById('propValue').value = "";
+    new Ajax.Updater('resourceProperties', '/wso2registry/system/setProperty', 
{ method: 'post', parameters: {resourcePath: resourcePath, propertyName: 
propertyName, propertyValue: propertyValue} });
+}
+
+function removeProperty(propertyName) {
+
+    var resourcePath = document.getElementById('propRPath').value;
+    new Ajax.Updater('resourceProperties', 
'/wso2registry/system/removeProperty', { method: 'post', parameters: 
{resourcePath: resourcePath, propertyName: propertyName} });
+}
+
 // media type map to store file_extension -> media type pairs.
 // these media type data will be retrieved upon the first request and stored 
in memory.
 var mediaTypeMap = null;

Modified: 
trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp 
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp 
Thu Jan 10 22:55:01 2008
@@ -7,6 +7,7 @@
 <%@ page import="org.wso2.registry.Comment" %>
 <%@ page import="org.wso2.registry.web.actions.utils.ResourcePath" %>
 <%@ page import="java.util.List" %>
+<%@ page import="java.util.Properties" %>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd";>
@@ -127,10 +128,30 @@
         new Ajax.Updater('ratingDiv', '/wso2registry/system/getInitialRating', 
{ method: 'get', parameters: {resourcePath: '<%=details.getPath()%>'} });
     </script>
 
-    <div id="resourceProperties"></div>
-    <script type="text/javascript" xml:space="preserve">
-        new Ajax.Updater('resourceProperties', 
'/wso2registry/system/getResourceProperties', { method: 'get', parameters: 
{resourcePath: '<%=details.getPath()%>'} });
-    </script>
+    <br/>
+    <h2>Properties</h2><br/>
+    <div id="resourceProperties">
+        <%
+            Properties props = details.getProperties();
+
+            Iterator iProps = props.keySet().iterator();
+            while (iProps.hasNext()) {
+
+                String name = (String) iProps.next();
+                String value = (String) props.get(name);
+
+        %>
+        <strong><%=name%></strong>: <%=value%> <input type="button" 
value="Remove" onclick="removeProperty('<%=name%>')"/> <br/>
+        <%
+            }
+        %>
+    </div>
+    <br/>
+    <form>
+        <input type="hidden" id="propRPath" value="<%=details.getPath()%>"/>
+        Name: <input type="text" id="propName"/> Value: <input type="text" 
id="propValue"/>
+        <input type="button" value="Add" onclick="setProperty()"/>
+    </form>
 
     <table cellpadding="0" cellspacing="0" border="0" 
class="simple-data-table" style="width:100%">
         <tr>

_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to