Author: roy.russo(a)jboss.com
Date: 2006-12-12 12:22:50 -0500 (Tue, 12 Dec 2006)
New Revision: 5807
Modified:
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java
trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp
Log:
JBPORTAL-1142 - added error handling in dashboard configure
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java 2006-12-12
04:59:21 UTC (rev 5806)
+++
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java 2006-12-12
17:22:50 UTC (rev 5807)
@@ -59,11 +59,6 @@
*/
public class Configurator extends JBossPortlet
{
-
- private static final int MOVE_UP = 0;
-
- private static final int MOVE_DOWN = 1;
-
private Logger log = Logger.getLogger(Configurator.class);
private InstanceContainer instanceContainer;
@@ -100,7 +95,7 @@
private PortalObjectId dashboardId = PortalObjectId.parse("/dashboard",
PortalObjectId.CANONICAL_FORMAT);
protected void doView(JBossRenderRequest req, JBossRenderResponse resp)
- throws PortletException, PortletSecurityException, IOException
+ throws PortletException, IOException
{
// Generic page loader.
String op = req.getParameter("op");
@@ -109,6 +104,8 @@
op = "editPage";
}
+ String errorMessage = (String)req.getParameter("errorMsg");
+
Portal portal =
(Portal)portalObjectContainer.getObject(dashboardId).getChild(req.getUser().getUserName());
Page page;
if (req.getParameter("editPageSelect") != null)
@@ -136,7 +133,8 @@
}
catch (Exception e)
{
- e.printStackTrace();
+ errorMessage = "Error loading dashboard settings.";
+ log.error(errorMessage, e);
}
// page select box
@@ -154,12 +152,19 @@
req.setAttribute("pages", pages);
req.setAttribute("currentPage", page.getName());
+ if (errorMessage != null)
+ {
+ req.setAttribute("errorMsg", errorMessage);
+ }
+
PortletRequestDispatcher rd =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/dashboard/editpage.jsp");
rd.include(req, resp);
}
protected void processAction(JBossActionRequest actionRequest, JBossActionResponse
actionResponse)
{
+ String errorMessage = null;
+
Portal portal =
(Portal)portalObjectContainer.getObject(dashboardId).getChild(actionRequest.getUser().getUserName());
Page page;
@@ -198,7 +203,8 @@
}
catch (Exception e)
{
- // todo
+ errorMessage = "Error adding window to region";
+ log.error(errorMessage, e);
}
actionResponse.setRenderParameter("editPageSelect", editPage);
}
@@ -218,14 +224,7 @@
removeWindows = actionRequest.getParameterValues(region +
"_instances");
}
}
- }
- catch (Exception e)
- {
- // todo
- }
- try
- {
for (int i = 0; i < removeWindows.length; i++)
{
page.destroyChild((String)removeWindows[i]);
@@ -233,7 +232,8 @@
}
catch (Exception e)
{
- // todo
+ errorMessage = "Error removing window from region";
+ log.error(errorMessage, e);
}
actionResponse.setRenderParameter("editPageSelect", editPage);
}
@@ -273,7 +273,8 @@
}
catch (Exception e)
{
- // todo
+ errorMessage = "Error positioning windows";
+ log.error(errorMessage, e);
}
actionResponse.setRenderParameter("editPageSelect", editPage);
}
@@ -285,11 +286,25 @@
try
{
+ if (pageName.startsWith(" "))
+ {
+ errorMessage = "Page name cannot be blank";
+ throw new Exception(errorMessage);
+ }
+ if (portal.getChild(pageName) != null)
+ {
+ errorMessage = "Duplicate page name found";
+ throw new Exception(errorMessage);
+ }
pageContainer.createPage(pageName);
}
catch (Exception e)
{
- // todo - name taken
+ if (errorMessage == null)
+ {
+ errorMessage = "Error creating new page: " + pageName;
+ }
+ log.error(errorMessage, e);
}
actionResponse.setRenderParameter("editPageSelect", pageName);
@@ -300,12 +315,20 @@
String pageName = actionRequest.getParameter("pagename");
try
{
- // TODO: check for default page.
+ if (portal.getDefaultPage().getName().equalsIgnoreCase(pageName))
+ {
+ errorMessage = "Cannot delete default page";
+ throw new Exception(errorMessage);
+ }
portal.destroyChild(pageName);
}
catch (Exception e)
{
- // do something
+ if (errorMessage == null)
+ {
+ errorMessage = "Error deleting page: " + pageName;
+ }
+ log.error(errorMessage, e);
}
actionResponse.setRenderParameter("op", "editPage");
@@ -315,6 +338,13 @@
actionResponse.setRenderParameter("editPageSelect", editPage);
actionResponse.setRenderParameter("op", "editPage");
}
+
+ // req/res doesnt allow nulls
+ if (errorMessage == null)
+ {
+ errorMessage = "";
+ }
+ actionResponse.setRenderParameter("errorMsg", errorMessage);
}
private int doWindowNaming()
@@ -365,7 +395,6 @@
if (sign == 0)
{
sign = w1.getName().compareTo(w2.getName());
- //sign = w1.getId().compareTo(w2.getId());
}
return sign;
}
Modified: trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp
===================================================================
--- trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp 2006-12-12
04:59:21 UTC (rev 5806)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp 2006-12-12
17:22:50 UTC (rev 5807)
@@ -21,6 +21,7 @@
Map windowMap = (Map)request.getAttribute("windowMap");
String currentPage = (String)request.getAttribute("currentPage");
+ String errorMessage = (String)request.getAttribute("errorMsg");
%>
<script type="text/javascript" language="JavaScript">
@@ -52,6 +53,19 @@
//alert("OP: '" + this.instancesForm.op.value + "' toRegion:
'" + this.instancesForm.toRegion.value + "' fromRegion: '" +
this.instancesForm.fromRegion.value + "' sortRegion: '" +
this.instancesForm.sortRegion.value + "'");
}
</script>
+
+<%
+ if (errorMessage != null)
+ {
+%>
+<div align="center">
+ <font color="red"><b><%= errorMessage %>
+ </b></font>
+</div>
+<%
+ }
+%>
+
<table width="100%">
<th colspan="2" class="portlet-section-header"
align="center">Edit Page '<%= currentPage %>'</th>
<tr>