Author: chathura
Date: Tue Dec 11 06:36:43 2007
New Revision: 10978
Log:
Implementing client side media type auto detecting support.
Modified:
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
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
Tue Dec 11 06:36:43 2007
@@ -575,7 +575,15 @@
}
response.sendRedirect("/wso2registry/web" + path);
+
+ } else if (command.equals("/getResourceMediaTypes")) {
+
+ String mediaTypes =
"txt:text,wsdl:wsdl/xml,xsd:xsd/xml,iml:idea/proj,ipr:idea/projs";
+ response.getWriter().write(mediaTypes);
+
+ return;
}
+
}
}
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 Tue Dec
11 06:36:43 2007
@@ -194,27 +194,90 @@
/* Ajax Rating Functions */
-function setRating(rating) {
+function setRating(rating) {
new Ajax.Updater('ratingDiv', '/wso2registry/system/setRating', { method:
'post', parameters: {ratingValue: rating} });
}
function previewRating(ratingDivId, value) {
-
- var images = $(ratingDivId).getElementsByTagName("img");
- for (var i = 0; i < 5; i++) {
- if (i < value) images[i].src =
"/wso2registry/admin/images/r4x.gif";
- else images[i].src = "/wso2registry/admin/images/r00.gif";
- }
-
+
+ var images = $(ratingDivId).getElementsByTagName("img");
+ for (var i = 0; i < 5; i++) {
+ if (i < value) images[i].src = "/wso2registry/admin/images/r4x.gif";
+ else images[i].src = "/wso2registry/admin/images/r00.gif";
+ }
+
}
function clearPreview(ratingDivId) {
-
- var ratingDiv = $(ratingDivId);
- var initialState =
ratingDiv.getElementsByTagName("span")[0].getAttribute('initialState').split("
");
- var images = ratingDiv.getElementsByTagName("img");
- for (var i = 0; i < 5; i++)
- images[i].src = "/wso2registry/admin/images/r" + initialState[i] +
".gif";
-
+
+ var ratingDiv = $(ratingDivId);
+ var initialState =
ratingDiv.getElementsByTagName("span")[0].getAttribute('initialState').split("
");
+ var images = ratingDiv.getElementsByTagName("img");
+ for (var i = 0; i < 5; i++)
+ images[i].src = "/wso2registry/admin/images/r" + initialState[i] +
".gif";
+
+}
+
+// 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;
+
+function fillMediaTypes() {
+
+ mediaTypeMap = new Object();
+
+ var mediaTypeResponse = "txt:text,wsdl:wsdl/xml,xsd:xsd/xml,iml:idea/proj";
+
+ new Ajax.Request('/wso2registry/system/getResourceMediaTypes',
+ {
+ asynchronous:'false',
+ method:'get',
+ onSuccess: function(transport){
+ mediaTypeResponse = transport.responseText ||
"txt:text,wsdl:wsdl/xml";
+ },
+ onFailure: function(){ alert('Could not get media types information
from the server.') }
+ });
+
+ var mType = mediaTypeResponse.split(',');
+ for (var i = 0; i < mType.length; i++) {
+ var typeData = mType[i].split(':');
+ if (typeData.length == 2) {
+ mediaTypeMap[typeData[0]] = typeData[1];
+ }
+ }
+}
+
+function getMediaType(fileExtension) {
+
+ if (mediaTypeMap == null) {
+ fillMediaTypes();
+ }
+
+ return mediaTypeMap[fileExtension];
+}
+
+function fillResourceDetails() {
+
+ var filepath = document.getElementById('resourceFile').value;
+
+ var filename = "";
+ if (filepath.indexOf("\\") != -1) {
+ filename = filepath.substring(filepath.lastIndexOf('\\') + 1,
filepath.length);
+ } else {
+ filename = filepath.substring(filepath.lastIndexOf('/') + 1,
filepath.length);
+ }
+
+ document.getElementById('resourceName').value = filename;
+ var extension = filename.substring(filename.lastIndexOf(".") + 1,
filename.length);
+
+ var mediaType = "";
+ if (extension.length > 0) {
+ mediaType = getMediaType(extension);
+ if (mediaType == undefined) {
+ mediaType = "";
+ }
+ }
+
+ document.getElementById('resourceMediaType').value = mediaType;
}
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
Tue Dec 11 06:36:43 2007
@@ -140,7 +140,12 @@
<tr>
<td width="100" valign="top">Name</td>
- <td><input type="text" name="filename"
style="margin-bottom:10px;"/></td>
+ <td><input id="resourceName" type="text" name="filename"
style="margin-bottom:10px;"/></td>
+ </tr>
+ <tr>
+ <td width="100" valign="top">Media type</td>
+
+ <td><input id="resourceMediaType" type="text" name="mediaType"
style="margin-bottom:10px;"/></td>
</tr>
<tr>
<td valign="top">Description</td>
@@ -148,7 +153,7 @@
</tr>
<tr>
<td valign="top">File</td>
- <td><input type="file" name="upload"/></td>
+ <td><input id="resourceFile" type="file" name="upload"
onchange="fillResourceDetails()"/></td>
</tr>
<tr>
<td> </td>
_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev