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>&nbsp;</td>

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

Reply via email to