You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by wo...@apache.org on 2007/08/09 08:40:54 UTC
svn commit: r564115 -
/portals/jetspeed-2/branches/JETSPEED-2.1.3/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm
Author: woonsan
Date: Wed Aug 8 23:40:54 2007
New Revision: 564115
URL: http://svn.apache.org/viewvc?view=rev&rev=564115
Log:
JS2-758: Ukrainian symbols doesn't save through Portal Site Manager
The escape() javascript function does not support i18n. Instead of escape(), we have to use encodeURI() or encodeURIComponent() function to encode unicode characters properly.
See the following pages on this topic:
- https://blueprints.dev.java.net/ajax-faq.html
- http://worldtimzone.com/blog/date/2002/09/24
- http://weblogs.java.net/blog/gmurray71/archive/2006/03/ajax_i18n_with.html
So, I removed escape() calls in the page, and add escapeURIComponent() just before invoking AJAX calls.
Note: I found that it worked properly only when the Tomcat connector's attribute, URIEncoding was set to 'UTF-8'.
Modified:
portals/jetspeed-2/branches/JETSPEED-2.1.3/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm
Modified: portals/jetspeed-2/branches/JETSPEED-2.1.3/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/branches/JETSPEED-2.1.3/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm?view=diff&rev=564115&r1=564114&r2=564115
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-2.1.3/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm (original)
+++ portals/jetspeed-2/branches/JETSPEED-2.1.3/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm Wed Aug 8 23:40:54 2007
@@ -759,25 +759,25 @@
names[0] = "method";
values[0] = "add";
names[1] = "path";
- values[1] = escape(node.widgetId);
+ values[1] = node.widgetId;
names[2] = "name";
- values[2] = escape(node.title);
+ values[2] = node.title;
names[3] = "title";
- values[3] = escape(document.getElementById("res.title").value);
+ values[3] = document.getElementById("res.title").value;
names[4] = "defaultLayout";
- values[4] = escape(document.getElementById("defaultLayout").value);
+ values[4] = document.getElementById("defaultLayout").value;
var index = 5;
var stitle = document.getElementById("res.short-title").value;
if (stitle != null && stitle != "")
{
names[index] = "short-title";
- values[index] = escape(stitle);
+ values[index] = stitle;
index = index + 1;
}
if (node.object == "Link")
{
names[index] = "url";
- values[index] = escape(document.getElementById("res.url").value);
+ values[index] = document.getElementById("res.url").value;
index = index + 1;
}
ajaxInvoke(action, names, values, new ResourceAddHandler(parent, node) );
@@ -852,9 +852,9 @@
names[0] = "method";
values[0] = "copy";
names[1] = "path";
- values[1] = escape(source);
+ values[1] = source;
names[2] = "name";
- values[2] = escape(nodeName);
+ values[2] = nodeName;
names[3] = "destination";
values[3] = destinationPath;
this.parent = parent;
@@ -933,9 +933,9 @@
names[0] = "method";
values[0] = "move";
names[1] = "path";
- values[1] = escape(node.widgetId+nodeName);
+ values[1] = node.widgetId+nodeName;
names[2] = "name";
- values[2] = escape(nodeName);
+ values[2] = nodeName;
names[3] = "destination";
values[3] = document.getElementById('destination').value;
ajaxInvoke(action, names, values, new ResourceMoveHandler(parent, node) );
@@ -1014,7 +1014,7 @@
names[0] = "method";
values[0] = "remove";
names[1] = "path";
- values[1] = escape(node.widgetId);
+ values[1] = node.widgetId;
ajaxInvoke(action, names, values, new ResourceDeleteHandler(parent, node) );
}
var ResourceCopyHandler = function(parent, node1)
@@ -1860,7 +1860,7 @@
{
for (var ix=0; ix<names.length; ix++)
{
- requestUrl = requestUrl + "&" + names[ix] + "=" + values[ix];
+ requestUrl = requestUrl + "&" + names[ix] + "=" + encodeURIComponent(values[ix]);
}
}
var mimeType = "text/xml";
@@ -2257,21 +2257,21 @@
else
values[0] = (rowData.__isNew)? "add-meta" : "update-meta";
names[1] = "path";
- values[1] = escape(dojo.byId("site.path").value);
+ values[1] = dojo.byId("site.path").value;
names[2] = "name";
- values[2] = escape(rowData.name);
+ values[2] = rowData.name;
names[3] = "lang";
- values[3] = escape(rowData.language);
+ values[3] = rowData.language;
names[4] = "value";
- values[4] = escape(rowData.value);
+ values[4] = rowData.value;
if (rowData.__isNew == null)
{
var tId = rowData.Id;
var masterData = table.getData( table.js_masterdata, tId );
names[5] = "oldname";
- values[5] = escape(masterData.name);
+ values[5] = masterData.name;
names[6] = "oldlang";
- values[6] = escape(masterData.language);
+ values[6] = masterData.language;
}
var kind = dojo.byId("site.kind").value;
var action = "update" + kind;
@@ -2294,9 +2294,9 @@
names[0] = "method";
values[0] = "remove-secdef";
names[1] = "path";
- values[1] = escape(dojo.byId("site.path").value);
+ values[1] = dojo.byId("site.path").value;
names[2] = "id";
- values[2] = escape(rowData.Id);
+ values[2] = rowData.Id;
}
else
{
@@ -2306,15 +2306,15 @@
else
values[0] = (rowData.__isNew)? "add-secref" : "update-secref";
names[1] = "path";
- values[1] = escape(dojo.byId("site.path").value);
+ values[1] = dojo.byId("site.path").value;
names[2] = "name";
- values[2] = escape(rowData.name);
+ values[2] = rowData.name;
if (rowData.__isNew == null)
{
var tId = rowData.Id;
var masterData = table.getData( table.js_masterdata, tId );
names[3] = "oldname";
- values[3] = escape(masterData.name);
+ values[3] = masterData.name;
}
names[4] = "kind";
values[4] = rowData.kind;
@@ -2334,19 +2334,19 @@
if (currentTabName == "infoTabFolder")
{
names[1] = "path";
- values[1] = escape(dojo.byId("finfo.path").value);
+ values[1] = dojo.byId("finfo.path").value;
names[2] = "name";
- values[2] = escape(dojo.byId("finfo.name").value);
+ values[2] = dojo.byId("finfo.name").value;
names[3] = "title";
- values[3] = escape(dojo.byId("finfo.title").value);
+ values[3] = dojo.byId("finfo.title").value;
names[4] = "short-title";
- values[4] = escape(dojo.byId("finfo.short-title").value);
+ values[4] = dojo.byId("finfo.short-title").value;
names[5] = "layout-decorator";
- values[5] = escape(dojo.byId("finfo.layout-decorator").value);
+ values[5] = dojo.byId("finfo.layout-decorator").value;
names[6] = "portlet-decorator";
- values[6] = escape(dojo.byId("finfo.portlet-decorator").value);
+ values[6] = dojo.byId("finfo.portlet-decorator").value;
names[7] = "default-page";
- values[7] = escape(dojo.byId("finfo.default-page").value);
+ values[7] = dojo.byId("finfo.default-page").value;
if (dojo.byId("finfo.hidden").checked)
{
names[8] = "hidden";
@@ -2357,19 +2357,19 @@
else if (currentTabName == "infoTabPage")
{
names[1] = "path";
- values[1] = escape(dojo.byId("pinfo.path").value);
+ values[1] = dojo.byId("pinfo.path").value;
names[2] = "name";
- values[2] = escape(dojo.byId("pinfo.name").value);
+ values[2] = dojo.byId("pinfo.name").value;
names[3] = "title";
- values[3] = escape(dojo.byId("pinfo.title").value);
+ values[3] = dojo.byId("pinfo.title").value;
names[4] = "short-title";
- values[4] = escape(dojo.byId("pinfo.short-title").value);
+ values[4] = dojo.byId("pinfo.short-title").value;
names[5] = "layout-decorator";
- values[5] = escape(dojo.byId("pinfo.layout-decorator").value);
+ values[5] = dojo.byId("pinfo.layout-decorator").value;
names[6] = "portlet-decorator";
- values[6] = escape(dojo.byId("pinfo.portlet-decorator").value);
+ values[6] = dojo.byId("pinfo.portlet-decorator").value;
names[7] = "theme";
- values[7] = escape(dojo.byId("pinfo.theme").value);
+ values[7] = dojo.byId("pinfo.theme").value;
if (dojo.byId("pinfo.hidden").checked)
{
names[8] = "hidden";
@@ -2380,17 +2380,17 @@
else if (currentTabName == "infoTabLinks")
{
names[1] = "path";
- values[1] = escape(dojo.byId("linfo.path").value);
+ values[1] = dojo.byId("linfo.path").value;
names[2] = "name";
- values[2] = escape(dojo.byId("linfo.name").value);
+ values[2] = dojo.byId("linfo.name").value;
names[3] = "title";
- values[3] = escape(dojo.byId("linfo.title").value);
+ values[3] = dojo.byId("linfo.title").value;
names[4] = "short-title";
- values[4] = escape(dojo.byId("linfo.short-title").value);
+ values[4] = dojo.byId("linfo.short-title").value;
names[5] = "url";
- values[5] = escape(dojo.byId("linfo.url").value);
+ values[5] = dojo.byId("linfo.url").value;
names[6] = "target";
- values[6] = escape(dojo.byId("linfo.target").value);
+ values[6] = dojo.byId("linfo.target").value;
if (dojo.byId("linfo.hidden").checked)
{
names[7] = "hidden";
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org