You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2008/06/28 21:18:57 UTC

svn commit: r672574 [13/16] - in /roller/planet/core/trunk: ./ lib/ lib/buildtime/ lib/jakarta-taglibs-standard-1.1.2/ lib/jakarta-taglibs-standard-1.1.2/lib/ lib/jakarta-taglibs-standard-1.1.2/tld/ lib/openjpa-0.9.7/ lib/rome-0.9/ lib/spring-1.2/ lib/...

Added: roller/planet/core/trunk/web/WEB-INF/jsps/errors/404.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/errors/404.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/errors/404.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/errors/404.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,60 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+<fmt:setBundle basename="ApplicationResources" />
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+    <head>
+        <title><fmt:message key="error.title.404" /></title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        
+        <link rel="stylesheet" type="text/css" media="all" href='<c:url value="/roller-ui/styles/roller.css"/>' />
+    </head>
+    <body>
+        
+        <div style="padding: 15px 25px 25px 25px">
+            <h2 class="error"><fmt:message key="error.title.404" /></h2>
+            
+            <c:set var="status_code" value="${requestScope['javax.servlet.error.status_code']}" />
+            <c:set var="message"     value="${requestScope['javax.servlet.error.message']}" />
+            <c:set var="type"        value="${requestScope['javax.servlet.error.type']}" />
+            
+            <table width="80%" border="1px" style="border-collapse: collapse;">
+                <tr>
+                    <td width="20%">Status Code</td>
+                    <td><c:out value="${status_code}" /></td>
+                </tr>
+                <tr>
+                    <td width="20%">Message</td>
+                    <td><c:out value="${message}" /></td>
+                </tr>
+                <tr>
+                    <td width="20%">Type</td>
+                    <td><c:out value="${type}" /></td>
+                </tr>
+                <tr>
+                    <td width="20%">Exception</td>
+                    <td><fmt:message key="error.text.404" /></td>
+                </tr>
+            </table>
+        </div>
+        
+        <br />
+        <br />
+    </body>
+</html>

Added: roller/planet/core/trunk/web/WEB-INF/jsps/errors/denied.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/errors/denied.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/errors/denied.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/errors/denied.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,27 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+
+<h2><s:text name="denied.title" /></h2>
+
+<s:text name="denied.prompt" />
+
+<ul>
+    <li><s:text name="denied.reason0" /></li>
+    <li><s:text name="denied.reason1" /></li>
+</ul>

Added: roller/planet/core/trunk/web/WEB-INF/jsps/errors/error.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/errors/error.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/errors/error.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/errors/error.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,60 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+<fmt:setBundle basename="ApplicationResources" />
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+    <head>
+        <title><fmt:message key="errorPage.title" /></title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        
+        <link rel="stylesheet" type="text/css" media="all" href='<c:url value="/roller-ui/styles/roller.css"/>' />
+    </head>
+    <body>
+        <div style="padding: 15px 25px 25px 25px">
+            <h2 class="error"><fmt:message key="errorPage.title" /></h2>
+            
+            <c:set var="status_code" value="${requestScope['javax.servlet.error.status_code']}" />
+            <c:set var="message"     value="${requestScope['javax.servlet.error.message']}" />
+            <c:set var="type"        value="${requestScope['javax.servlet.error.type']}" />
+            <c:set var="exception"   value="${requestScope['javax.servlet.error.exception']}" />
+            
+            <table width="80%" border="1px" style="border-collapse: collapse;">
+                <tr>
+                    <td width="20%">Status Code</td>
+                    <td><c:out value="${status_code}" /></td>
+                </tr>
+                <tr>
+                    <td width="20%">Message</td>
+                    <td><c:out value="${message}" /></td>
+                </tr>
+                <tr>
+                    <td width="20%">Type</td>
+                    <td><c:out value="${type}" /></td>
+                </tr>
+                <tr>
+                    <td width="20%">Exception</td>
+                    <td><fmt:message key="errorPage.message" /></td>
+                </tr>
+            </table>
+        </div>
+        
+        <br />
+        <br />
+    </body>
+</html>

Modified: roller/planet/core/trunk/web/WEB-INF/jsps/login.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/login.jsp?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/login.jsp (original)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/login.jsp Sat Jun 28 12:18:17 2008
@@ -24,7 +24,7 @@
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title><s:text name="Login.pageTitle" /></title>
-        <link rel="stylesheet" type="text/css" href='<c:url value="/planet-ui/css/planet.css" />' />
+        <link rel="stylesheet" type="text/css" href='<c:url value="/planet-ui/css/planet-ui.css" />' />
     </head>
     <body>
         <div id="wrapper">

Added: roller/planet/core/trunk/web/WEB-INF/jsps/taglibs-struts2.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/taglibs-struts2.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/taglibs-struts2.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/taglibs-struts2.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,25 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<% response.setContentType("text/html; charset=UTF-8"); %>
+<%@ page language="java" contentType="text/html; charset=UTF-8" %>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/xml"  prefix="x" %>
+<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
+<%@ taglib uri="/struts-tags" prefix="s" %>
\ No newline at end of file

Added: roller/planet/core/trunk/web/WEB-INF/jsps/tiles/empty.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/tiles/empty.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/tiles/empty.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/tiles/empty.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,17 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
\ No newline at end of file

Added: roller/planet/core/trunk/web/WEB-INF/jsps/tiles/footer.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/tiles/footer.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/tiles/footer.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/tiles/footer.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,28 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+
+
+<a href="http://opensource2.atlassian.com/projects/roller/">
+    <s:text name="footer.reportIssue" /></a> | 
+
+<a href="http://cwiki.apache.org/confluence/display/ROLLER/Roller+User+Documentation">
+    <s:text name="footer.userGuide" /></a> | 
+
+<a href="http://cwiki.apache.org/confluence/display/ROLLER/Roller+Mailing+Lists">
+    <s:text name="footer.mailingLists" /></a>

Added: roller/planet/core/trunk/web/WEB-INF/jsps/tiles/head.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/tiles/head.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/tiles/head.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/tiles/head.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,9 @@
+<%-- 
+This default stuff goes in the HTML head element of each page
+You can override it with your own file via WEB-INF/tiles-def.xml
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+
+<link rel="stylesheet" type="text/css" media="all" href='<s:url value="/planet-ui/css/planet-ui.css"/>' />
+<script type="text/javascript" src='<s:url value="/planet-ui/scripts/scriptaculous/prototype.js"/>' ></script>
+<script type="text/javascript" src='<s:url value="/planet-ui/scripts/actionbar.js"/>' ></script>

Added: roller/planet/core/trunk/web/WEB-INF/jsps/tiles/menubar.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/tiles/menubar.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/tiles/menubar.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/tiles/menubar.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,50 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+    
+<table class="menubar" cellpadding="0" cellspacing="0">
+    <tr>
+        <td class="menuLeft">
+            <a href="<s:url value="/"/>"><s:property value="getProp('site.name')"/></a>
+            | <a href="<s:url action="menu" namespace="/planet-ui" />"><s:text name="menubar.mainMenu" /></a>
+            <s:if test="userIsAdmin">
+            | <a href="<s:url action="globalConfig" namespace="/planet-ui/admin" />"><s:text name="menubar.globalConfig" /></a>
+            | <a href="<s:url action="userAdmin" namespace="/planet-ui/admin" />"><s:text name="menubar.userAdmin" /></a>
+            </s:if>
+        </td>
+        
+        <td class="menuRight">
+            <s:if test="authenticatedUser != null">
+<%-- remove link resource to profile.rol - use CWP-IDM instead
+                <s:text name="menubar.loggedInAs" /> <a href="<s:url action="profile" namespace="/planet-ui" />"><s:property value="authenticatedUser.userName"/></a>,
+--%>
+                <s:text name="menubar.loggedInAs" /> <s:property value="authenticatedUser.userName"/></a>,
+                <a href="<s:url action="logout" namespace="/planet-ui" />"><s:text name="menubar.logout"/></a>
+            </s:if>
+            <s:else>
+                <a href="<s:url action="login-redirect" namespace="/planet-ui" />"><s:text name="menubar.login"/></a>
+                <s:if test="getBooleanProp('users.registration.enabled')">
+                    | <a href="<s:url action="register" namespace="/planet-ui" />"><s:text name="menubar.register"/></a>
+                </s:if>
+                <s:elseif test="getProp('users.registration.url') != ''">
+                    | <a href="<s:property value="getProp('users.registration.url')"/>"><s:text name="menubar.register"/></a>
+                </s:elseif>
+            </s:else>
+        </td>
+    </tr>
+</table>

Added: roller/planet/core/trunk/web/WEB-INF/jsps/tiles/messages.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/tiles/messages.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/tiles/messages.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/tiles/messages.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,41 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+
+<%-- Success Messages --%>
+<s:if test="!actionMessages.isEmpty">
+    <div id="messages" class="messages">
+        <s:actionmessage />
+    </div>
+</s:if>
+
+<%-- Error Messages --%>
+<s:if test="!actionErrors.isEmpty || !fieldErrors.isEmpty">
+    <div id="errors" class="errors">
+        <ul>
+            <s:iterator id="actionError" value="actionErrors">
+                <li><s:property value="#actionError" /></li>
+            </s:iterator>
+            <s:iterator id="fieldErrorName" value="fieldErrors.keySet()">
+                <s:iterator id="fieldErrorValue" value="fieldErrors[#fieldErrorName]">
+                    <li><s:property value="#fieldErrorValue" /></li>
+                </s:iterator>
+            </s:iterator>
+        </ul>
+    </div>
+</s:if>

Added: roller/planet/core/trunk/web/WEB-INF/jsps/tiles/tiles-simplepage.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/tiles/tiles-simplepage.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/tiles/tiles-simplepage.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/tiles/tiles-simplepage.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,58 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+    <head>
+        <title><s:property value="getProp('site.name')"/>: <s:property value="pageTitle" /></title>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        
+        <tiles:insertAttribute name="head" />
+    </head>
+    <body>
+        
+        <div id="menubar">
+            <tiles:insertAttribute name="menubar" />
+        </div>
+        
+        <div id="wrapper"> 
+            <div id="leftcontent_wrap">
+                <div id="leftcontent"> 
+                </div>
+            </div>
+            
+            <div id="centercontent_wrap">
+                <div id="centercontent">
+                    <tiles:insertAttribute name="title" />
+                    <tiles:insertAttribute name="messages" />
+                    <tiles:insertAttribute name="content" />
+                </div>
+            </div>
+            
+            <div id="rightcontent_wrap">
+                <div id="rightcontent"> 
+                </div>
+            </div>
+        </div>
+        
+        <div id="footer">
+            <tiles:insertAttribute name="footer" />
+        </div>
+        
+    </body>
+</html>

Added: roller/planet/core/trunk/web/WEB-INF/jsps/tiles/title.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/jsps/tiles/title.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/jsps/tiles/title.jsp (added)
+++ roller/planet/core/trunk/web/WEB-INF/jsps/tiles/title.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,29 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+    
+    <s:if test="actionPlanet && actionGroup">
+        <h1 class="pageTitle-planet"><span class="planet"><s:property value="%{actionPlanet.title}"/></span> &gt; <span class="planet"><s:property value="%{actionGroup.title}"/></span> &gt; <span class="page"><s:property value="pageTitle" /></span></h1>
+    </s:if>
+    <s:elseif test="actionPlanet">
+        <h1 class="pageTitle-planet"><span class="planet"><s:property value="%{actionPlanet.title}"/></span> &gt; <span class="page"><s:property value="pageTitle" /></span></h1>
+    </s:elseif>
+    <s:else>
+        <h1 class="pageTitle-simple"><s:property value="pageTitle" /></h1>
+    </s:else>
+    

Added: roller/planet/core/trunk/web/WEB-INF/security.xml
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/security.xml?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/security.xml (added)
+++ roller/planet/core/trunk/web/WEB-INF/security.xml Sat Jun 28 12:18:17 2008
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+-->
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
+    "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans>
+
+    <!-- ======================== FILTER CHAIN ======================= -->
+    <bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">
+        <property name="filterInvocationDefinitionSource">
+            <value>
+                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
+                PATTERN_TYPE_APACHE_ANT
+                /**=channelProcessingFilter,httpSessionContextIntegrationFilter,remoteUserFilter,authenticationProcessingFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
+            </value>
+        </property>
+    </bean>
+    
+    <!-- ========== SSL SWITCHING ========== -->
+    <bean id="channelProcessingFilter" class="org.acegisecurity.securechannel.ChannelProcessingFilter">
+        <property name="channelDecisionManager" ref="channelDecisionManager"/>
+        <property name="filterInvocationDefinitionSource">
+            <value>
+                PATTERN_TYPE_APACHE_ANT
+            </value>
+        </property>
+    </bean>
+    
+    <!-- ========== Maintains SessionContext accross Requests ========== -->
+    <bean id="httpSessionContextIntegrationFilter" class="org.acegisecurity.context.HttpSessionContextIntegrationFilter"/>
+    
+    <!-- ========== WRAPS HTTP REQUEST OBJECT ========== -->
+    <bean id="remoteUserFilter" class="org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter"/>
+    
+    <!-- ========== Local Authentication Processing ========== -->
+    <bean id="authenticationProcessingFilter" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
+        <property name="authenticationManager" ref="authenticationManager"/>
+        <property name="authenticationFailureUrl" value="/planet-ui/login.rol?error=true"/>
+        <property name="defaultTargetUrl" value="/"/>
+        <property name="filterProcessesUrl" value="/roller_j_security_check"/>
+        <property name="rememberMeServices" ref="rememberMeServices"/>
+    </bean>
+    
+    <!-- ========== Remember Me PROCESSING ========== -->
+    <bean id="rememberMeProcessingFilter" class="org.acegisecurity.ui.rememberme.RememberMeProcessingFilter">
+        <property name="authenticationManager" ref="authenticationManager"/>
+        <property name="rememberMeServices" ref="rememberMeServices"/>
+    </bean>
+    
+    <bean id="rememberMeServices" class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices"> 
+        <property name="userDetailsService" ref="planetUserAuthenticationDao"/>
+        <property name="key" value="rollerlovesacegi"/> 
+        <property name="parameter" value="rememberMe"/>
+    </bean> 
+  
+    <bean id="rememberMeAuthenticationProvider" class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider"> 
+        <property name="key" value="rollerlovesacegi"/>
+    </bean>
+    
+    <!-- ========== ANONYMOUS USER HANDLING ========== -->
+    <bean id="anonymousProcessingFilter" class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter">
+        <property name="key" value="anonymous"/>
+        <property name="userAttribute" value="anonymous,ROLE_ANONYMOUS"/>
+    </bean>
+    
+    <!-- ========== TURN EXCEPTIONS INTO ACTIONS ========== -->
+    <bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter">
+        <property name="authenticationEntryPoint" ref="authenticationProcessingFilterEntryPoint"/>
+        <property name="accessDeniedHandler" ref="accessDeniedHandler"/>
+    </bean>
+    
+    <!-- Note the order that entries are placed against the objectDefinitionSource is critical.
+         The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL.
+         Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last -->
+    <!-- ========== AUTHORIZATION ENFORCEMENT ========== -->
+    <bean id="filterInvocationInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
+        <property name="authenticationManager" ref="authenticationManager"/>
+        <property name="accessDecisionManager" ref="accessDecisionManager"/>
+         <property name="objectDefinitionSource">
+            <value>
+                PATTERN_TYPE_APACHE_ANT
+                /planet-ui/login-redirect**=admin,editor
+                /planet-ui/profile**=admin,editor
+                /planet-ui/createPlanet**=admin,editor
+                /planet-ui/menu**=admin,editor
+                /planet-ui/editor/**=admin,editor
+                /planet-ui/admin/**=admin
+                /planet-ui/cwpAccessDenied**=admin,editor,anonymous
+                /rewrite-status*=admin
+            </value>
+        </property>
+    </bean>
+    
+  
+    <!-- Log failed authentication attempts to commons-logging -->
+    <bean id="loggerListener" class="org.acegisecurity.event.authentication.LoggerListener"/>
+        
+    <!-- ========== AUTHENTICATION MANAGER AND PROVIDERS ========== -->
+    <bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">
+        <property name="providers">
+            <list>
+                <ref local="daoAuthenticationProvider"/>
+                <!-- Uncomment this for LDAP/SSO configuration <ref local="ldapAuthProvider"/> -->
+                <!-- Uncomment this for CAS/SSO configuration <ref local="casAuthenticationProvider"/> -->
+                <!-- rememberMeAuthenticationProvider added programmatically -->
+                <ref local="anonymousAuthenticationProvider"/>
+            </list>
+        </property>
+    </bean>
+    
+    <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
+         <property name="userDetailsService" ref="planetUserAuthenticationDao"/>
+    </bean>
+    
+    <!-- Read users from Roller Planet -->
+    <bean id="planetUserAuthenticationDao" class="org.apache.roller.planet.ui.core.security.RollerUserDetailsService"/>
+    
+    <bean id="anonymousAuthenticationProvider" class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">
+        <property name="key" value="anonymous"/>
+    </bean>
+    
+    <bean id="userCache" class="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
+        <property name="cache">
+            <bean class="org.springframework.cache.ehcache.EhCacheFactoryBean">
+                <property name="cacheManager">
+                    <bean class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>
+                </property>
+                <property name="cacheName" value="userCache"/>
+            </bean>
+        </property>
+    </bean>
+    
+    <bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter">
+        <property name="rolePrefix" value=""/>
+    </bean>
+
+    <bean id="accessDecisionManager" class="org.acegisecurity.vote.AffirmativeBased">
+        <property name="allowIfAllAbstainDecisions" value="false"/>
+        <property name="decisionVoters">
+            <list>
+                <ref local="roleVoter"/>
+            </list>
+        </property>
+    </bean>
+    
+    <!-- defines what happens with a failed authentication exception -->
+    <bean id="authenticationProcessingFilterEntryPoint" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
+        <property name="loginFormUrl" value="/planet-ui/login.rol"/>
+        <property name="forceHttps" value="false"/>
+    </bean>
+    
+    <!-- defines what happens when someone is forbidden a resource -->
+    <bean id="accessDeniedHandler" class="org.acegisecurity.ui.AccessDeniedHandlerImpl">
+        <property name="errorPage" value="/planet-ui/denied.rol"/>
+    </bean>
+                
+    <bean id="channelDecisionManager" class="org.acegisecurity.securechannel.ChannelDecisionManagerImpl">
+        <property name="channelProcessors">
+            <list>
+                <bean class="org.acegisecurity.securechannel.SecureChannelProcessor"/>
+                <bean class="org.acegisecurity.securechannel.InsecureChannelProcessor"/>
+            </list>
+        </property>
+    </bean>
+    
+</beans>

Added: roller/planet/core/trunk/web/WEB-INF/tiles.xml
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/tiles.xml?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/tiles.xml (added)
+++ roller/planet/core/trunk/web/WEB-INF/tiles.xml Sat Jun 28 12:18:17 2008
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+-->
+<!DOCTYPE tiles-definitions PUBLIC
+    "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
+    "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
+<tiles-definitions>
+    
+    <definition name=".tiles-simplepage" template="/WEB-INF/jsps/tiles/tiles-simplepage.jsp">
+        <put-attribute name="head"         value="/WEB-INF/jsps/tiles/head.jsp" />
+        <put-attribute name="menubar"      value="/WEB-INF/jsps/tiles/menubar.jsp" />
+        <put-attribute name="title"      value="/WEB-INF/jsps/tiles/title.jsp" />
+        <put-attribute name="messages"     value="/WEB-INF/jsps/tiles/messages.jsp" />
+        <put-attribute name="content"      value="${content}" />
+        <put-attribute name="footer"       value="/WEB-INF/jsps/tiles/footer.jsp" />
+    </definition>
+    
+    <definition name=".tiles-errorpage" extends=".tiles-simplepage">
+        <put-attribute name="menubar"      value="/WEB-INF/jsps/tiles/empty.jsp" />
+        <put-attribute name="title"      value="/WEB-INF/jsps/tiles/empty.jsp" />
+    </definition>
+    
+    
+    <!-- error pages -->
+    <definition name=".denied" extends=".tiles-errorpage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/errors/denied.jsp" />
+    </definition>
+    
+        
+    <!-- core pages (and associates) -->
+    <definition name=".Login" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/Login.jsp" />
+    </definition>
+    
+    <definition name=".LoginDisabled" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/LoginDisabled.jsp" />
+    </definition>
+    
+    <definition name=".Register" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/Register.jsp" />
+    </definition>
+    
+    <definition name=".RegisterDisabled" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/RegisterDisabled.jsp" />
+    </definition>
+    
+    <definition name=".Welcome" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/Welcome.jsp" />
+    </definition>
+    
+    <definition name=".Profile" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/Profile.jsp" />
+    </definition>
+    
+    <definition name=".ProfileDisabled" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/ProfileDisabled.jsp" />
+    </definition>
+    
+    <definition name=".CreatePlanet" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/CreatePlanet.jsp" />
+    </definition>
+    
+    <definition name=".MainMenu" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/core/MainMenu.jsp" />
+    </definition>
+    
+    
+    <!-- editor pages -->
+    <definition name=".PlanetConfig" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/editor/PlanetConfig.jsp" />
+    </definition>
+    
+    <definition name=".PlanetRemove" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/editor/PlanetRemove.jsp" />
+    </definition>
+    
+    <definition name=".Members" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/editor/Members.jsp" />
+    </definition>
+    
+    <definition name=".Groups" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/editor/Groups.jsp" />
+    </definition>
+    
+    <definition name=".GroupAdd" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/editor/GroupAdd.jsp" />
+    </definition>
+    
+    <definition name=".GroupEdit" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/editor/GroupEdit.jsp" />
+    </definition>
+    
+    <definition name=".GroupRemove" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/editor/GroupRemove.jsp" />
+    </definition>
+    
+    <definition name=".Subscriptions" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/editor/Subscriptions.jsp" />
+    </definition>
+    
+    
+    <!-- admin pages -->
+    <definition name=".GlobalConfig" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/admin/GlobalConfig.jsp" />
+    </definition>
+    
+    <definition name=".UserAdmin" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/admin/UserAdmin.jsp" />
+    </definition>
+    
+    <definition name=".CreateUser" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/admin/CreateUser.jsp" />
+    </definition>
+    
+    <definition name=".ModifyUser" extends=".tiles-simplepage" >
+        <put-attribute name="content" value="/WEB-INF/jsps/admin/ModifyUser.jsp" />
+    </definition>
+    
+</tiles-definitions>

Modified: roller/planet/core/trunk/web/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/WEB-INF/web.xml?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/web/WEB-INF/web.xml (original)
+++ roller/planet/core/trunk/web/WEB-INF/web.xml Sat Jun 28 12:18:17 2008
@@ -1,7 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     
-    <display-name>Planet Roller</display-name>
+    <display-name>Roller Planet</display-name>
+    
+    <context-param>
+        <param-name>contextConfigLocation</param-name>
+        <param-value>/WEB-INF/security.xml</param-value>
+    </context-param>
     
     <filter>
         <filter-name>struts2</filter-name>
@@ -9,31 +14,62 @@
     </filter>
     
     <filter>
+        <filter-name>securityFilter</filter-name>
+        <filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
+        <init-param>
+            <param-name>targetClass</param-name>
+            <param-value>org.acegisecurity.util.FilterChainProxy</param-value>
+        </init-param>
+    </filter>
+    
+    <filter>
         <filter-name>PersistenceSessionFilter</filter-name>
         <filter-class>org.apache.roller.planet.ui.core.filters.PersistenceSessionFilter</filter-class>
     </filter>
     
     <filter>
-        <filter-name>RequestMappingFilter</filter-name>
-        <filter-class>org.apache.roller.planet.ui.rendering.filters.RequestMappingFilter</filter-class>
+        <filter-name>SchemeEnforcementFilter</filter-name>
+        <filter-class>org.apache.roller.planet.ui.core.filters.SchemeEnforcementFilter</filter-class>
     </filter>
     
     <filter>
-        <filter-name>DebugFilter</filter-name>
-        <filter-class>org.apache.roller.planet.ui.core.filters.DebugFilter</filter-class>
+        <filter-name>CharEncodingFilter</filter-name>
+        <filter-class>org.apache.roller.planet.ui.core.filters.CharEncodingFilter</filter-class>
     </filter>
     
-    <!--
+    <filter>
+        <filter-name>RequestMappingFilter</filter-name>
+        <filter-class>org.apache.roller.planet.ui.rendering.filters.RequestMappingFilter</filter-class>
+    </filter>
+    
+    <!-- This filter ensures that the request encoding is set to UTF-8 before any 
+     other processing forces request parsing using a default encoding.
+    Note: Any filters preceding this one MUST not cause request parsing. -->
+    <filter-mapping>
+        <filter-name>CharEncodingFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+        <dispatcher>REQUEST</dispatcher>
+        <dispatcher>FORWARD</dispatcher>
+    </filter-mapping>
+    
+    <!-- Scheme enforcement.  Only here until we get Acegi scheme enforcement working -->
     <filter-mapping>
-        <filter-name>DebugFilter</filter-name>
-        <url-pattern>*.action</url-pattern>
+        <filter-name>SchemeEnforcementFilter</filter-name>
+        <url-pattern>/*</url-pattern>
         <dispatcher>REQUEST</dispatcher>
     </filter-mapping>
-    -->
+    
+    <!-- Acegi Security filters - controls secure access to different parts of Roller -->
+    <filter-mapping>
+        <filter-name>securityFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+        <dispatcher>REQUEST</dispatcher>
+        <dispatcher>FORWARD</dispatcher>
+    </filter-mapping>
     
     <filter-mapping>
         <filter-name>PersistenceSessionFilter</filter-name>
-        <url-pattern>/planet-ui/*</url-pattern>
+        <url-pattern>/*</url-pattern>
         <dispatcher>REQUEST</dispatcher>
     </filter-mapping>
     
@@ -75,6 +111,11 @@
         <load-on-startup>5</load-on-startup>
     </servlet>
     
+    <servlet>
+        <servlet-name>UserDataServlet</servlet-name>
+        <servlet-class>org.apache.roller.planet.ui.struts2.ajax.UserDataServlet</servlet-class>
+    </servlet>
+    
     <servlet-mapping>
         <servlet-name>HomepageServlet</servlet-name>
         <url-pattern>/planet-ui/rendering/homepage</url-pattern>
@@ -95,11 +136,19 @@
         <url-pattern>/planet-ui/rendering/opml/*</url-pattern>
     </servlet-mapping>
     
+    <servlet-mapping>
+        <servlet-name>UserDataServlet</servlet-name>
+        <url-pattern>/planet-ui/editor/userdata/*</url-pattern>
+    </servlet-mapping>
+    
     
     <listener>
         <listener-class>org.apache.roller.planet.ui.core.PlanetContext</listener-class>
     </listener>
     
+    <listener>
+        <listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>
+    </listener>
     
     <resource-ref>
         <res-ref-name>jdbc/rollerdb</res-ref-name>
@@ -112,31 +161,4 @@
         <welcome-file>index.html</welcome-file>
     </welcome-file-list>
     
-    <security-constraint>
-        <display-name>planet-ui</display-name>
-        <web-resource-collection>
-            <web-resource-name>planet-ui</web-resource-name>
-            <url-pattern>/planet-ui/admin/*</url-pattern>
-            <http-method>GET</http-method>
-            <http-method>POST</http-method>
-        </web-resource-collection>
-        <auth-constraint>
-            <description/>
-            <role-name>admin</role-name>
-        </auth-constraint>
-    </security-constraint> 
-    
-    <security-role>
-        <description/>
-        <role-name>admin</role-name>
-    </security-role>
-    
-    <login-config>
-        <auth-method>FORM</auth-method>
-        <form-login-config>
-            <form-login-page>/planet-ui/Login.action</form-login-page>
-            <form-error-page>/planet-ui/Login.action?failed=true</form-error-page>
-        </form-login-config>
-    </login-config>
-    
 </web-app>

Added: roller/planet/core/trunk/web/planet-ui/css/planet-ui.css
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/css/planet-ui.css?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/planet-ui/css/planet-ui.css (added)
+++ roller/planet/core/trunk/web/planet-ui/css/planet-ui.css Sat Jun 28 12:18:17 2008
@@ -0,0 +1,200 @@
+
+body {
+    color: #333;
+    margin: 0px;
+    padding: 0px;
+    font-family: Arial, Helvetica, sans-serif;
+}
+
+h1,h2,h3 {
+    margin: 10px 0px 10px 0px;
+}
+
+a {
+    color: #5c67e0;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+img {
+    border: none;
+    padding: 0px 3px 0px 0px;
+}
+
+.fieldError {
+   color: red;
+}
+
+.errors, .messages, .warnings {
+    padding: 5px;
+    margin: 10px 0px 10px 0px;
+}
+.errors {
+   background-color: #fcc;
+   border: 1px solid red;
+}
+.messages {
+   background-color: #cfc;
+   border: 1px solid green;
+}
+.warnings {
+    background-color: #ffffce;
+    border: 1px solid #f0c000;
+}
+
+.warning {
+    color: #f00;
+    font-size: larger;
+}
+
+/** This hides the field error messages struts2 inserts **/
+.errorMessage {
+    display: none;
+}
+
+
+/** MenuBar Styles **/
+
+div#menubar {
+    padding: 2px 10px 4px 10px;
+    background-color: #DDD;
+}
+
+table.menubar {
+    width: 100%;
+}
+
+table.menubar td.menuLeft {
+    text-align: left;
+}
+
+table.menubar td.menuRight {
+    text-align: right; 
+}
+
+div.actionItem {
+    display: none;
+}
+
+div#wrapper {
+    padding: 10px 10px 0px 10px;
+}
+
+div#footer {
+    padding: 40px 10px 10px 10px;
+    text-align: center;
+    color: #aaa;
+    font-size: 8pt;
+}
+
+
+/** Page Title Styles **/
+
+h1.pageTitle-simple {
+    color: #4cbc00;
+}
+
+h1.pageTitle-planet span.planet {
+    color: #e77100;
+}
+
+h1.pageTitle-planet span.page {
+    color: #4cbc00;
+    font-size: smaller;
+}
+
+
+/** Main Menu Styles **/
+
+div.planetBox {
+    width: 75%;
+    border-top: 1px solid #999;
+    padding-top: 5px;
+    margin-bottom: 20px;
+}
+
+span.mm_planet_name {
+    color: #e77100;
+    font-weight: bold;
+    font-size: 16pt;
+}
+
+div.planetBox table.mm_table {
+    width: 100%;
+    margin-top: 8px;
+}
+
+td.mm_subtable_label {
+    width: 100px;
+    vertical-align: top;
+    font-weight: bold;
+}
+
+td.mm_table_actions {
+    width: 20%;
+    text-align: left;
+    vertical-align: top;
+    background-color: #fff4d4;
+    padding: 4px;
+}
+
+
+div.addSub {
+    margin-bottom: 20px;
+}
+
+
+/** General Form and Table Styles **/
+
+td.tdLabel {
+    vertical-align:top;
+}
+
+table.form {
+    width: 80%
+}
+
+table.data {
+    border-collapse: collapse;
+    border: 1px solid #a0a0a0;
+}
+
+table.data td, table.data th {
+    border-collapse: collapse;
+    border: 1px solid #a0a0a0;
+    padding: 3px;
+}
+
+table.data th {
+    background: #f3e4c8;
+    background-image: url(../images/th-bg-grey.png);
+}
+
+td.narrowColumn {
+    width: 5%;
+    text-align: center;
+}
+
+td.labelColumn {
+    width: 25%;
+}
+
+td.valueColumn {
+    width: 75%;
+}
+
+tr.evenRow {
+    background: #f5f5f5;
+}
+
+tr.errorRow {
+    background: #fcc;
+}
+
+table.data td.submit {
+    padding: 10px;
+    text-align: right;
+}

Added: roller/planet/core/trunk/web/planet-ui/images/cog.png
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/images/cog.png?rev=672574&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/planet/core/trunk/web/planet-ui/images/cog.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/planet/core/trunk/web/planet-ui/images/table_multiple.png
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/images/table_multiple.png?rev=672574&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/planet/core/trunk/web/planet-ui/images/table_multiple.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/planet/core/trunk/web/planet-ui/images/world_go.png
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/images/world_go.png?rev=672574&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/planet/core/trunk/web/planet-ui/images/world_go.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: roller/planet/core/trunk/web/planet-ui/index.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/index.jsp?rev=672574&r1=672573&r2=672574&view=diff
==============================================================================
--- roller/planet/core/trunk/web/planet-ui/index.jsp (original)
+++ roller/planet/core/trunk/web/planet-ui/index.jsp Sat Jun 28 12:18:17 2008
@@ -1 +1 @@
-<% response.sendRedirect("admin/ConfigForm.action"); %>
+<% response.sendRedirect("menu.rol"); %>

Added: roller/planet/core/trunk/web/planet-ui/login-redirect.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/login-redirect.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/planet-ui/login-redirect.jsp (added)
+++ roller/planet/core/trunk/web/planet-ui/login-redirect.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,20 @@
+<%--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+--%>
+<%
+    response.sendRedirect(request.getContextPath()+"/planet-ui/menu.rol");
+%>

Added: roller/planet/core/trunk/web/planet-ui/logout-redirect.jsp
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/logout-redirect.jsp?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/planet-ui/logout-redirect.jsp (added)
+++ roller/planet/core/trunk/web/planet-ui/logout-redirect.jsp Sat Jun 28 12:18:17 2008
@@ -0,0 +1,8 @@
+<%@ page import="org.apache.roller.planet.ui.core.PlanetContext" %>
+<%
+// invalidating local session logs us out of Acegi
+request.getSession().removeAttribute(PlanetContext.USER_ID);
+request.getSession().invalidate(); 
+
+response.sendRedirect(request.getContextPath());
+%>

Added: roller/planet/core/trunk/web/planet-ui/scripts/ajax-user.js
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/scripts/ajax-user.js?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/planet-ui/scripts/ajax-user.js (added)
+++ roller/planet/core/trunk/web/planet-ui/scripts/ajax-user.js Sat Jun 28 12:18:17 2008
@@ -0,0 +1,84 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+*  contributor license agreements.  The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.  For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+// Used in: InviteMember.jsp, UserAdmin.jsp
+
+function createRequestObject() {
+    var ro;
+    var browser = navigator.appName;
+    if (browser == "Microsoft Internet Explorer") {
+        ro = new ActiveXObject("Microsoft.XMLHTTP");
+    } else {
+        ro = new XMLHttpRequest();
+    }
+    return ro;
+}
+var http = createRequestObject();
+var init = false;
+var isBusy = false;
+var userURL = "<%= request.getContextPath() %>" + "/planet-ui/editor/userdata?length=50";
+
+function onUserNameFocus(enabled) {
+    if (!init) {
+        init = true;
+        u = userURL;
+        if (enabled != null) u = u + "&enabled=" + enabled;
+        sendUserRequest(u);
+    }
+}
+function onUserNameChange(enabled) {
+    u = userURL;
+    if (enabled != null) u = u + "&enabled=" + enabled;
+    userName = document.getElementById("userName");
+    if (userName.value.length > 0) u = u + "&startsWith=" + userName.value;
+    sendUserRequest(u);
+}
+function onUserSelected() {
+    userList = document.getElementById("userList");
+    user = userList.options[userList.options.selectedIndex];
+    userName = document.getElementById("userName");
+    userName.value = user.value;
+}
+function sendUserRequest(url) {
+    if (isBusy) return;
+    isBusy = true;
+    http.open('get', url);
+    http.onreadystatechange = handleUserResponse;
+    http.send(null);
+}
+function handleUserResponse() {
+    if (http.readyState == 4) {
+        userList = document.getElementById("userList");
+        for (i = userList.options.length; i >= 0; i--) {
+            userList.options[i] = null;
+        }   
+        //userList.onchange = null;
+        data = http.responseText;  
+        if (data.indexOf("\n") != -1) {
+            lines = data.split('\n');
+            for (i = 0; i < lines.length; i++) {
+                if (lines[i].indexOf(',') != -1) {
+                   userArray = lines[i].split(',');
+                   userList.options[userList.length] = 
+                      new Option(userArray[0] + " (" + userArray[1] + ")", userArray[0]);
+                }
+            }
+        }  
+
+    }
+    isBusy = false;
+}

Added: roller/planet/core/trunk/web/planet-ui/scripts/scriptaculous/builder.js
URL: http://svn.apache.org/viewvc/roller/planet/core/trunk/web/planet-ui/scripts/scriptaculous/builder.js?rev=672574&view=auto
==============================================================================
--- roller/planet/core/trunk/web/planet-ui/scripts/scriptaculous/builder.js (added)
+++ roller/planet/core/trunk/web/planet-ui/scripts/scriptaculous/builder.js Sat Jun 28 12:18:17 2008
@@ -0,0 +1,119 @@
+// script.aculo.us builder.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006
+
+// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//
+// See scriptaculous.js for full license.
+
+var Builder = {
+  NODEMAP: {
+    AREA: 'map',
+    CAPTION: 'table',
+    COL: 'table',
+    COLGROUP: 'table',
+    LEGEND: 'fieldset',
+    OPTGROUP: 'select',
+    OPTION: 'select',
+    PARAM: 'object',
+    TBODY: 'table',
+    TD: 'table',
+    TFOOT: 'table',
+    TH: 'table',
+    THEAD: 'table',
+    TR: 'table'
+  },
+  // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,
+  //       due to a Firefox bug
+  node: function(elementName) {
+    elementName = elementName.toUpperCase();
+    
+    // try innerHTML approach
+    var parentTag = this.NODEMAP[elementName] || 'div';
+    var parentElement = document.createElement(parentTag);
+    try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
+      parentElement.innerHTML = "<" + elementName + "></" + elementName + ">";
+    } catch(e) {}
+    var element = parentElement.firstChild || null;
+      
+    // see if browser added wrapping tags
+    if(element && (element.tagName != elementName))
+      element = element.getElementsByTagName(elementName)[0];
+    
+    // fallback to createElement approach
+    if(!element) element = document.createElement(elementName);
+    
+    // abort if nothing could be created
+    if(!element) return;
+
+    // attributes (or text)
+    if(arguments[1])
+      if(this._isStringOrNumber(arguments[1]) ||
+        (arguments[1] instanceof Array)) {
+          this._children(element, arguments[1]);
+        } else {
+          var attrs = this._attributes(arguments[1]);
+          if(attrs.length) {
+            try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
+              parentElement.innerHTML = "<" +elementName + " " +
+                attrs + "></" + elementName + ">";
+            } catch(e) {}
+            element = parentElement.firstChild || null;
+            // workaround firefox 1.0.X bug
+            if(!element) {
+              element = document.createElement(elementName);
+              for(attr in arguments[1]) 
+                element[attr == 'class' ? 'className' : attr] = arguments[1][attr];
+            }
+            if(element.tagName != elementName)
+              element = parentElement.getElementsByTagName(elementName)[0];
+            }
+        } 
+
+    // text, or array of children
+    if(arguments[2])
+      this._children(element, arguments[2]);
+
+     return element;
+  },
+  _text: function(text) {
+     return document.createTextNode(text);
+  },
+  _attributes: function(attributes) {
+    var attrs = [];
+    for(attribute in attributes)
+      attrs.push((attribute=='className' ? 'class' : attribute) +
+          '="' + attributes[attribute].toString().escapeHTML() + '"');
+    return attrs.join(" ");
+  },
+  _children: function(element, children) {
+    if(typeof children=='object') { // array can hold nodes and text
+      children.flatten().each( function(e) {
+        if(typeof e=='object')
+          element.appendChild(e)
+        else
+          if(Builder._isStringOrNumber(e))
+            element.appendChild(Builder._text(e));
+      });
+    } else
+      if(Builder._isStringOrNumber(children)) 
+         element.appendChild(Builder._text(children));
+  },
+  _isStringOrNumber: function(param) {
+    return(typeof param=='string' || typeof param=='number');
+  },
+  dump: function(scope) { 
+    if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope 
+  
+    var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " +
+      "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " +
+      "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+
+      "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+
+      "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+
+      "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);
+  
+    tags.each( function(tag){ 
+      scope[tag] = function() { 
+        return Builder.node.apply(Builder, [tag].concat($A(arguments)));  
+      } 
+    });
+  }
+}
\ No newline at end of file