Author: roy.russo(a)jboss.com
Date: 2006-11-27 15:33:29 -0500 (Mon, 27 Nov 2006)
New Revision: 5726
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-993
- Add page functionality added.
- Can now perform operations on newly added pages.
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-11-27
19:16:41 UTC (rev 5725)
+++
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java 2006-11-27
20:33:29 UTC (rev 5726)
@@ -24,6 +24,7 @@
import org.jboss.logging.Logger;
import org.jboss.portal.core.model.instance.InstanceContainer;
import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.PageContainer;
import org.jboss.portal.core.model.portal.PortalObject;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
import org.jboss.portal.core.model.portal.Window;
@@ -95,13 +96,29 @@
protected void doView(JBossRenderRequest req, JBossRenderResponse resp)
throws PortletException, PortletSecurityException, IOException
{
+ // Generic page loader.
+ String op = req.getParameter("op");
+ if (op == null)
+ {
+ op = "editPage";
+ }
+
+ Page page = null;
+ if (req.getParameter("editPageSelect") != null)
+ {
+ String editPageSelect = req.getParameter("editPageSelect");
+ page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(editPageSelect);
+ }
+ else
+ {
+ page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(req.getUser().getUserName());
+ }
+
List available_instances = (List)instanceContainer.getInstances();
-
List left_instances = new ArrayList();
List center_instances = new ArrayList();
List right_instances = new ArrayList();
- Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(req.getUser().getUserName());
try
{
Map windowMap = getWindows(page);
@@ -119,7 +136,7 @@
if (region.equals("left"))
{
left_instances.add(window);
- System.out.println(window.getInstanceRef() + ":" +
window.getDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER));
+ //System.out.println(window.getInstanceRef() + ":" +
window.getDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER));
}
else if (region.equals("center"))
{
@@ -137,11 +154,23 @@
e.printStackTrace();
}
+ List pages = new ArrayList();
+ for (Iterator j = page.getPortal().getChildren().iterator(); j.hasNext();)
+ {
+ PortalObject object = (PortalObject)j.next();
+ if (object.getType() == PortalObject.TYPE_PAGE)
+ {
+ pages.add(object);
+ }
+ }
+
resp.setContentType("text/html");
req.setAttribute("available_instances", available_instances);
req.setAttribute("left_instances", left_instances);
req.setAttribute("center_instances", center_instances);
req.setAttribute("right_instances", right_instances);
+ req.setAttribute("pages", pages);
+ req.setAttribute("currentPage", page.getName());
PortletRequestDispatcher rd =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/dashboard/editpage.jsp");
rd.include(req, resp);
}
@@ -149,12 +178,17 @@
protected void processAction(JBossActionRequest actionRequest, JBossActionResponse
actionResponse)
{
String op = actionRequest.getParameter("op");
+ String editPage = actionRequest.getParameter("editPageSelect"); // the
current page we're editting
+ if (editPage == null)
+ {
+ editPage = actionRequest.getUser().getUserName();
+ }
if ("copy".equals(op))
{
String toRegion = actionRequest.getParameter("toRegion");
String[] copyInstance =
actionRequest.getParameterValues("available_instances");
- Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(actionRequest.getUser().getUserName());
+ Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(editPage);
try
{
for (int i = 0; i < copyInstance.length; i++)
@@ -175,6 +209,7 @@
{
// todo
}
+ actionResponse.setRenderParameter("editPageSelect", editPage);
}
else if ("remove".equals(op))
{
@@ -193,7 +228,7 @@
removeWindows =
actionRequest.getParameterValues("right_instances");
}
- Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(actionRequest.getUser().getUserName());
+ Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(editPage);
try
{
for (int i = 0; i < removeWindows.length; i++)
@@ -205,6 +240,7 @@
{
// todo
}
+ actionResponse.setRenderParameter("editPageSelect", editPage);
}
else if ("up".equals(op) || "down".equals(op))
{
@@ -223,7 +259,7 @@
moveWindows = actionRequest.getParameterValues("right_instances");
}
- Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(actionRequest.getUser().getUserName());
+ Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(editPage);
for (int i = 0; i < moveWindows.length; i++)
{
Window window = page.getWindow(moveWindows[i]);
@@ -236,7 +272,32 @@
window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(getOrder(window) + 1));
}
}
+ actionResponse.setRenderParameter("editPageSelect", editPage);
}
+ else if ("newpage".equals(op))
+ {
+ String pageName = actionRequest.getParameter("pagename");
+
+ Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(actionRequest.getUser().getUserName());
+ PageContainer pageContainer = (PageContainer)page.getPortal();
+
+ try
+ {
+ pageContainer.createPage(pageName);
+ }
+ catch (Exception e)
+ {
+ // todo - name taken
+ }
+
+ actionResponse.setRenderParameter("editPageSelect", pageName);
+ actionResponse.setRenderParameter("op", "editPage");
+ }
+ else if ("editPage".equals(op))
+ {
+ actionResponse.setRenderParameter("editPageSelect", editPage);
+ actionResponse.setRenderParameter("op", op);
+ }
}
private int doWindowNaming()
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-11-27
19:16:41 UTC (rev 5725)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp 2006-11-27
20:33:29 UTC (rev 5726)
@@ -1,6 +1,7 @@
<%@ page import="org.jboss.portal.core.model.instance.Instance" %>
+<%@ page import="org.jboss.portal.core.model.portal.Page" %>
+<%@ page import="org.jboss.portal.core.model.portal.Window" %>
<%@ page import="java.util.List" %>
-<%@ page import="org.jboss.portal.core.model.portal.Window" %>
<%@ page language="java"
extends="org.jboss.portal.core.servlet.jsp.PortalJsp" %>
<%@ taglib
uri="http://java.sun.com/portlet" prefix="portlet"
%>
<%@ taglib uri="/WEB-INF/portal-lib.tld" prefix="n" %>
@@ -13,6 +14,8 @@
List left_instances = (List)request.getAttribute("left_instances");
List center_instances = (List)request.getAttribute("center_instances");
List right_instances = (List)request.getAttribute("right_instances");
+ List pages = (List)request.getAttribute("pages");
+ String currentPage = (String)request.getAttribute("currentPage");
%>
<script type="text/javascript" language="JavaScript">
@@ -34,13 +37,18 @@
this.instancesForm.sortRegion.value = region;
}
+ function newPage(op)
+ {
+ this.instancesForm.op.value = op;
+ }
+
function debug()
{
//alert("OP: '" + this.instancesForm.op.value + "' toRegion:
'" + this.instancesForm.toRegion.value + "' fromRegion: '" +
this.instancesForm.fromRegion.value + "' sortRegion: '" +
this.instancesForm.sortRegion.value + "'");
}
</script>
<table width="100%">
-<th colspan="2" class="portlet-section-header"
align="center">Edit Page</th>
+<th colspan="2" class="portlet-section-header"
align="center">Edit Page '<%= currentPage %>'</th>
<tr>
<td class="portlet-section-body" align="left">
Use this to manage the content on your page. You can control the page title, select
number of columns, and add,
@@ -55,10 +63,19 @@
<tr>
<td class="portlet-section-body"
align="left"><b>Select a page to edit:</b><br/>
- <form action="" method="POST"
style="padding:0;margin:0">
- <select name="pagename">
- <option value="">Home</option>
- <option value="">Blah</option>
+ <form action="<portlet:actionURL><portlet:param
name="op" value="editPage"></portlet:param>
+ </portlet:actionURL>" method="POST"
style="padding:0;margin:0">
+ <select name="editPageSelect">
+ <%
+ for (int i = 0; i < pages.size(); i++)
+ {
+ Page onePage = (Page)pages.get(i);
+ %>
+ <option value="<%= onePage.getName() %>"><%=
onePage.getName() %>
+ </option>
+ <%
+ }
+ %>
</select>
<input type="submit" name="submit" value="Go"
class="portlet-form-button"/>
</form>
@@ -77,16 +94,26 @@
<input type="hidden" name="toRegion"/>
<input type="hidden" name="fromRegion"/>
<input type="hidden" name="sortRegion"/>
+<input type="hidden" name="editPageSelect" value="<%=
currentPage %>"/>
<table width="100%">
<tr>
-<td>
+<td valign="top" class="portlet-section-alternate"
width="250">
<table>
<tr>
- <td>title/layout table</td>
+ <td valign="top">
+ <b>Title and Layout</b>
+ <br/>
+ Title the page and select the number of columns for the layout
+ <hr/>
+ <b>Page Title:</b><br/>
+ <input type="text" class="portlet-form-input-field"
name="pagename">
+ <br/>
+ <input type="submit" name="save"
value="Save" class="portlet-form-button"
onclick="newPage('newpage');"/>
+ </td>
</tr>
</table>
</td>
-<td class="portlet-section-body"
valign="top"><b>Available Content</b><br/>
+<td class="portlet-section-body" valign="top"
align="right"><b>Available Content</b><br/>
<select name="available_instances" multiple="true"
size="20">
<%
for (int i = 0; i < available_instances.size(); i++)
@@ -115,7 +142,6 @@
for (int i = 0; i < left_instances.size(); i++)
{
Window window = (Window)left_instances.get(i);
- //String instance = (String)left_instances.get(i);
%>
<option value="<%= window.getName() %>"><%=
window.getInstanceRef() %>
</option>
@@ -143,7 +169,6 @@
for (int i = 0; i < center_instances.size(); i++)
{
Window window = (Window)center_instances.get(i);
- //String instance = (String)center_instances.get(i);
%>
<option value="<%= window.getName() %>"><%=
window.getInstanceRef() %>
</option>
@@ -169,7 +194,6 @@
for (int i = 0; i < right_instances.size(); i++)
{
Window window = (Window)right_instances.get(i);
- //String instance = (String)right_instances.get(i);
%>
<option value="<%= window.getName() %>"><%=
window.getInstanceRef() %>
</option>
@@ -189,14 +213,6 @@
</form>
</td>
</tr>
-<!--
-<tr>
- <td class="portlet-section-alternate" width="100%"
colspan="4" align="center">
- <input type="submit" name="save" value="Save"
class="portlet-form-button"/>
- <input type="submit" name="delete" value="Delete"
class="portlet-form-button"/>
- </td>
-</tr>
--->
</table>
</td>
</tr>