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