You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/06/08 18:06:46 UTC

svn commit: r189602 [50/50] - in /incubator/roller/trunk: ./ contrib/ contrib/lib/ contrib/plugins/ contrib/plugins/src/ contrib/plugins/src/org/ contrib/plugins/src/org/roller/ contrib/plugins/src/org/roller/presentation/ contrib/plugins/src/org/roller/presentation/velocity/ contrib/plugins/src/org/roller/presentation/velocity/plugins/ contrib/plugins/src/org/roller/presentation/velocity/plugins/acronyms/ contrib/plugins/src/org/roller/presentation/velocity/plugins/bookmarks/ contrib/plugins/src/org/roller/presentation/velocity/plugins/email/ contrib/plugins/src/org/roller/presentation/velocity/plugins/jspwiki/ contrib/plugins/src/org/roller/presentation/velocity/plugins/radeox/ contrib/plugins/src/org/roller/presentation/velocity/plugins/readmore/ contrib/plugins/src/org/roller/presentation/velocity/plugins/smileys/ contrib/plugins/src/org/roller/presentation/velocity/plugins/textile/ docs/ docs/images/ docs/installguide/ docs/installguide/old/ docs/userguide/ docs/userguide/images/ docs/userguide/old/ metadata/ metadata/database/ metadata/database/hibernate/ metadata/xdoclet/ personal/ personal/eclipse/ personal/testing/ src/ src/org/ src/org/roller/ src/org/roller/business/ src/org/roller/business/hibernate/ src/org/roller/business/utils/ src/org/roller/model/ src/org/roller/pojos/ src/org/roller/presentation/ src/org/roller/presentation/atom/ src/org/roller/presentation/bookmarks/ src/org/roller/presentation/bookmarks/actions/ src/org/roller/presentation/bookmarks/formbeans/ src/org/roller/presentation/bookmarks/tags/ src/org/roller/presentation/filters/ src/org/roller/presentation/forms/ src/org/roller/presentation/newsfeeds/ src/org/roller/presentation/pagecache/ src/org/roller/presentation/pagecache/rollercache/ src/org/roller/presentation/tags/ src/org/roller/presentation/tags/calendar/ src/org/roller/presentation/tags/menu/ src/org/roller/presentation/velocity/ src/org/roller/presentation/weblog/ src/org/roller/presentation/weblog/actions/ src/org/roller/presentation/weblog/formbeans/ src/org/roller/presentation/weblog/search/ src/org/roller/presentation/weblog/search/operations/ src/org/roller/presentation/weblog/tags/ src/org/roller/presentation/website/ src/org/roller/presentation/website/actions/ src/org/roller/presentation/website/formbeans/ src/org/roller/presentation/website/tags/ src/org/roller/presentation/xmlrpc/ src/org/roller/util/ tests/ tests/org/ tests/org/roller/ tests/org/roller/business/ tests/org/roller/model/ tests/org/roller/persistence/ tests/org/roller/presentation/ tests/org/roller/presentation/atom/ tests/org/roller/presentation/bookmarks/ tests/org/roller/presentation/velocity/ tests/org/roller/presentation/velocity/plugins/ tests/org/roller/presentation/velocity/plugins/smileys/ tests/org/roller/presentation/velocity/plugins/textile/ tests/org/roller/presentation/xmlrpc/ tests/org/roller/util/ tools/ tools/buildtime/ tools/buildtime/mockrunner-0.2.6/ tools/buildtime/mockrunner-0.2.6/lib/ tools/buildtime/tomcat-4.1.24/ tools/buildtime/xdoclet-1.2/ tools/buildtime/xdoclet-1.2/lib/ tools/hibernate-2.1/ tools/hibernate-2.1/lib/ tools/lib/ tools/standard-1.0.3/ tools/standard-1.0.3/lib/ tools/standard-1.0.3/tld/ tools/struts-1.1/ tools/struts-1.1/lib/ web/ web/WEB-INF/ web/WEB-INF/classes/ web/WEB-INF/classes/flavors/ web/WEB-INF/classes/themes/ web/bookmarks/ web/images/ web/images/editor/ web/images/midas/ web/images/preview/ web/images/smileys/ web/tags/ web/templates/ web/theme/ web/theme/images/ web/theme/lavender/ web/theme/scripts/ web/theme/scripts/classes/ web/themes/ web/themes/basic/ web/themes/berkley/ web/themes/berkley/images/ web/themes/cheb/ web/themes/cheb/images/ web/themes/cheb/scripts/ web/themes/clean/ web/themes/currency-i18n/ web/themes/currency-i18n/images/ web/themes/currency/ web/themes/currency/images/ web/themes/grey2/ web/themes/moonshine/ web/themes/pacifica/ web/themes/robot/ web/themes/rolling/ web/themes/rolling/images/ web/themes/sotto/ web/themes/sotto/images/ web/themes/sotto/styles/ web/themes/sunsets/ web/themes/sunsets/images/ web/themes/sunsets/scripts/ web/themes/sunsets/styles/ web/themes/werner/ web/themes/x2/ web/themes/x2/images/ web/themes/x2/scripts/ web/themes/x2/styles/ web/weblog/ web/website/

Added: incubator/roller/trunk/web/weblog/comment-preview.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/comment-preview.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/comment-preview.jsp (added)
+++ incubator/roller/trunk/web/weblog/comment-preview.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,27 @@
+<%@ include file="/weblog/comments-header.jspf" %>
+
+<body>
+
+<div class="comments">
+
+<div class="commentTitle">
+    <bean:write name="blogEntry" property="title" scope="request" />
+</div>
+
+<h3><fmt:message key="comments.preview" /></h3>
+<bean:define id="comment" name="commentForm" type="org.roller.presentation.forms.CommentForm"/>
+
+<% Integer count = new Integer(-1); // JvdM: 'count' needs to be there for comment-display.jspf %>
+<table class="rollertable">
+    <tr class="rollertable_even">
+ <%@ include file="comment-display.jspf" %>
+    </tr>
+</table>
+
+<div class="content"><fmt:message key="comments.preview.edit" /></div>
+
+<%@ include file="comment-form.jspf" %>
+
+</div>
+
+<%@ include file="/theme/footer.jsp" %>
\ No newline at end of file

Added: incubator/roller/trunk/web/weblog/comments-header.jspf
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/comments-header.jspf?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/comments-header.jspf (added)
+++ incubator/roller/trunk/web/weblog/comments-header.jspf Wed Jun  8 09:06:16 2005
@@ -0,0 +1,91 @@
+
+<%@ page language="java" errorPage="/error.jsp" %>
+
+<%@ page import="org.roller.pojos.RollerConfig" %>
+<%@ page import="org.roller.pojos.WeblogEntryData" %>
+<%@ page import="org.roller.pojos.WebsiteData" %>
+<%@ page import="org.roller.presentation.RollerContext" %>
+<%@ page import="org.roller.presentation.RollerRequest" %>
+<%@ page import="org.roller.util.DateUtil" %>
+<%@ page import="org.roller.util.RegexUtil" %>
+<%@ page import="org.roller.util.StringUtils" %>
+<%@ page import="org.roller.util.Utilities" %>
+
+<%@ include file="/taglibs.jsp" %>
+<%
+RollerContext rc = RollerContext.getRollerContext(request);
+RollerConfig rollerConfig = rc.getRollerConfig();
+boolean escapeHtml = rollerConfig.getEscapeCommentHtml().booleanValue();
+boolean autoformat = rollerConfig.getAutoformatComments().booleanValue();
+
+String themeName = "basic";
+String userName = "";
+WeblogEntryData entry = (WeblogEntryData)request.getAttribute("blogEntry");
+WebsiteData website = null;
+if (entry != null)
+{
+    website = entry.getWebsite();
+    if (website != null)
+    {
+        userName = website.getUser().getUserName();
+        if (StringUtils.isNotEmpty(website.getEditorTheme()))
+        {
+            themeName = website.getEditorTheme();
+        }
+    }
+}
+
+String contextPath = request.getContextPath();
+%>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+    <title><%= rollerConfig.getSiteName() %> :: <fmt:message key="comments.title" /> ::
+        <bean:write name="blogEntry" property="title"
+        scope="request" filter="true" />
+    </title>
+
+    <script type="text/javascript"
+        src="<%= contextPath %>/theme/scripts/roller.js"></script>
+
+    <link rel="stylesheet" type="text/css" media="all"
+         href="<%= contextPath %>/theme/layout.css" />
+
+    <link rel="stylesheet" type="text/css" media="all"
+         href="<%= contextPath %>/theme/roller.css" />
+
+    <link rel="stylesheet" type="text/css" media="all"
+         href="<%= contextPath %>/theme/menu.css" />
+
+    <style type="text/css">
+    body {
+        background-color: #FFFFFF;
+        background-image: none;
+        color: #000000;
+        font-family: verdana, sans-serif;
+        font-size: small;
+    }
+    h3 {
+        margin-left: auto;
+        margin-right: auto;
+        text-align: center;
+    }
+    #footer {
+        display: none;
+    }
+    th {
+        vertical-align: middle;
+        text-align: right;
+        padding-right: 5px;
+        font-size: 12px;
+    }
+    </style>
+    <!-- Change this by changing your "Editor Theme" -->
+    <link rel="stylesheet" type="text/css"
+        href="<%= contextPath %>/themes/<%= themeName %>/theme.css" />
+    <!-- Edit your _css Page Template -->
+    <link rel="stylesheet" type="text/css"
+        href="<%= contextPath %>/page/<%= userName %>/_css" />
+</head>
\ No newline at end of file

Added: incubator/roller/trunk/web/weblog/comments.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/comments.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/comments.jsp (added)
+++ incubator/roller/trunk/web/weblog/comments.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,42 @@
+
+<%@ include file="/weblog/comments-header.jspf" %>
+
+<body>
+
+<div class="comments">
+
+<roller:StatusMessage/>
+
+<div class="commentTitle">
+    <bean:write name="blogEntry" property="title"
+        scope="request" filter="false" />
+</div>
+
+<table class="rollertable">
+<logic:iterate id="comment" indexId="count" name="blogComments"
+    scope="request" type="org.roller.pojos.CommentData">
+    <%
+    String rowClass = "rollertable_even";
+    if (count.intValue() % 2 == 0)
+        rowClass = "rollertable_even";
+    else
+        rowClass = "rollertable_odd";
+    %>
+    <tr class="<%= rowClass %>">
+ <%@ include file="comment-display.jspf" %>
+    </tr>
+</logic:iterate>
+</table>
+
+</div>
+
+<c:if test="${blogEntry.commentsStillAllowed}">
+   <h3><fmt:message key="comments.header" /></h3>
+   <%@ include file="comment-form.jspf" %>
+</c:if>
+<c:if test="${!blogEntry.commentsStillAllowed}">
+   <fmt:message key="comments.disabled" />
+</c:if>
+
+
+<%@ include file="/theme/footer.jsp" %>

Added: incubator/roller/trunk/web/weblog/editor-dhtml.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/editor-dhtml.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/editor-dhtml.jsp (added)
+++ incubator/roller/trunk/web/weblog/editor-dhtml.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,294 @@
+
+<%-- This page is designed to be included in edit-weblog.jsp --%>
+
+<%@ include file="/taglibs.jsp" %>
+
+<html:hidden property="text" />
+    
+<script language="JavaScript">
+<!--
+    // dhtml editor requires IE 6
+    var agt=navigator.userAgent.toLowerCase();
+    msie = agt.indexOf("msie");
+    ie   = (msie != -1);
+    major = parseInt(navigator.appVersion);
+    if (ie)
+    {
+        major = parseInt( agt.substring( msie+5 ) );
+    }
+    if (!ie || major < 6)
+    {
+        document.write("<span class=\"statusMsg\">");
+        document.write("We recommend ");
+        document.write("<a href=\"http://www.microsoft.com/windows/ie/default.asp\">IE 6 or higher</a> ");
+        document.write("for using the dHtml editor. ")
+        document.write("Please <a href=\"");
+        document.write("website.do?method=edit&rmik=Settings\">");
+        document.write("change to the text editor</a> or upgrade ");
+        document.write("your browser.</span>");
+    }
+    
+    function postWeblogEntry(publish)
+    {
+        document.weblogEntryFormEx.text.value = iView.document.body.innerHTML;
+        if (publish)
+            document.weblogEntryFormEx.publishEntry.value = "true";
+        document.weblogEntryFormEx.submit();
+    }
+
+    var viewMode = 1; // WYSIWYG
+
+    function selOn(ctrl)
+    {
+        ctrl.style.borderColor = '#000000';
+        ctrl.style.backgroundColor = '#B5BED6';
+        ctrl.style.cursor = 'hand'; 
+    }
+
+    function selOff(ctrl)
+    {
+        ctrl.style.borderColor = '#D6D3CE';  
+        ctrl.style.backgroundColor = '#D6D3CE';
+    }
+
+    function selDown(ctrl)
+    {
+        ctrl.style.backgroundColor = '#8492B5';
+    }
+
+    function selUp(ctrl)
+    {
+        ctrl.style.backgroundColor = '#B5BED6';
+    }
+
+    function doBold()
+    {
+        iView.document.execCommand('bold', false, null);
+    }
+
+    function doItalic()
+    {
+        iView.document.execCommand('italic', false, null);
+    }
+
+    function doUnderline()
+    {
+        iView.document.execCommand('underline', false, null);
+    }
+
+    function doLeft()
+    {
+        iView.document.execCommand('justifyleft', false, null);
+    }
+
+    function doCenter()
+    {
+        iView.document.execCommand('justifycenter', false, null);
+    }
+
+    function doRight()
+    {
+        iView.document.execCommand('justifyright', false, null);
+    }
+
+    function doOrdList()
+    {
+        iView.document.execCommand('insertorderedlist', false, null);
+    }
+
+    function doBulList()
+    {
+        iView.document.execCommand('insertunorderedlist', false, null);
+    }
+
+    function doForeCol()
+    {
+        var fCol = prompt('Enter foreground color', '');
+
+        if(fCol != null)
+            iView.document.execCommand('forecolor', false, fCol);
+    }
+
+    function doBackCol()
+    {
+        var bCol = prompt('Enter background color', '');
+
+        if(bCol != null)
+            iView.document.execCommand('backcolor', false, bCol);
+    }
+
+    function doLink()
+    {
+        iView.document.execCommand('createlink');
+    }
+
+    function doImage()
+    {
+        var imgSrc = prompt('Enter image location', '');
+
+        if(imgSrc != null)    
+            iView.document.execCommand('insertimage', false, imgSrc);
+    }
+
+    function doRule()
+    {
+        iView.document.execCommand('inserthorizontalrule', false, null);
+    }
+
+    function doFont(fName)
+    {
+        if(fName != '')
+            iView.document.execCommand('fontname', false, fName);
+    }
+
+    function doSize(fSize)
+    {
+        if(fSize != '')
+            iView.document.execCommand('fontsize', false, fSize);
+    }
+
+    function doHead(hType)
+    {
+        if(hType != '')
+        {
+            iView.document.execCommand('formatblock', false, hType);  
+            doFont(selFont.options[selFont.selectedIndex].value);
+        }
+    }
+
+    function doToggleView()
+    {  
+        if(viewMode == 1)
+        {
+            iHTML = iView.document.body.innerHTML;
+            iView.document.body.innerText = iHTML;
+
+            // Hide all controls
+            tblCtrls.style.display = 'none';
+            tblCtrls2.style.display = 'none';
+            //selFont.style.display = 'none';
+            //selSize.style.display = 'none';
+            //selHeading.style.display = 'none';
+            iView.focus();
+
+            viewMode = 2; // Code
+        }
+        else
+        {
+            iText = iView.document.body.innerText;
+            iView.document.body.innerHTML = iText;
+
+            // Show all controls
+            tblCtrls.style.display = 'inline';
+            tblCtrls2.style.display = 'inline';
+            //selFont.style.display = 'inline';
+            //selSize.style.display = 'inline';
+            //selHeading.style.display = 'inline';
+            iView.focus();
+
+            viewMode = 1; // WYSIWYG
+        }
+    }
+// -->
+</script>
+<style>
+
+    .butClass
+    {    
+        border: 1px solid;
+        border-color: #D6D3CE;
+    }
+
+    .tdClass
+    {
+        padding-left: 3px;
+        padding-top:3px;
+    }
+
+</style>
+
+<table width="95%" height="30px" border="0" cellspacing="0" cellpadding="0" bgcolor="#D6D3CE">
+<tr>
+    <td id="tblCtrls" class="tdClass">
+        <img alt="Bold" class="butClass" src="<%= request.getContextPath() %>/images/editor/bold.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBold()">
+        <img alt="Italic" class="butClass" src="<%= request.getContextPath() %>/images/editor/italic.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doItalic()">
+        <img alt="Underline" class="butClass" src="<%= request.getContextPath() %>/images/editor/underline.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doUnderline()">
+
+        <img alt="Left" class="butClass" src="<%= request.getContextPath() %>/images/editor/left.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doLeft()">
+        <img alt="Center" class="butClass" src="<%= request.getContextPath() %>/images/editor/center.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doCenter()">
+        <img alt="Right" class="butClass" src="<%= request.getContextPath() %>/images/editor/right.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doRight()">
+
+        <img alt="Ordered List" class="butClass" src="<%= request.getContextPath() %>/images/editor/ordlist.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doOrdList()">
+        <img alt="Bulleted List" class="butClass" src="<%= request.getContextPath() %>/images/editor/bullist.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBulList()">
+
+        <img alt="Text Color" class="butClass" src="<%= request.getContextPath() %>/images/editor/forecol.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doForeCol()">
+        <img alt="Background Color" class="butClass" src="<%= request.getContextPath() %>/images/editor/bgcol.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBackCol()">
+
+        <img alt="Hyperlink" class="butClass" src="<%= request.getContextPath() %>/images/editor/link.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doLink()">
+        <img alt="Image" class="butClass" src="<%= request.getContextPath() %>/images/editor/image.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doImage()">
+        <img alt="Horizontal Rule" class="butClass" src="<%= request.getContextPath() %>/images/editor/rule.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doRule()">
+
+    </td>
+    <td class="tdClass" colspan="1" width="20%" align="right">
+      <img alt="Toggle Mode" class="butClass" src="<%= request.getContextPath() %>/images/editor/mode.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doToggleView()">
+      &nbsp;&nbsp;&nbsp;
+    </td>
+</tr>
+</table>
+
+<table width="95%" height="30px" border="0" cellspacing="0" cellpadding="0" bgcolor="#D6D3CE">
+<tr>
+    <td id="tblCtrls2" class="tdClass" colspan="1" width="80%">
+      <select id="selFont" onChange="doFont(this.options[this.selectedIndex].value)">
+        <option value="">-- Font --</option>
+        <option value="Arial">Arial</option>
+        <option value="Courier">Courier</option>
+        <option value="Sans Serif">Sans Serif</option>
+        <option value="Tahoma">Tahoma</option>
+        <option value="Verdana">Verdana</option>
+        <option value="Wingdings">Wingdings</option>
+      </select>
+      <select id="selSize" onChange="doSize(this.options[this.selectedIndex].value)">
+        <option value="">-- Size --</option>
+        <option value="1">Very Small</option>
+        <option value="2">Small</option>
+        <option value="3">Medium</option>
+        <option value="4">Large</option>
+        <option value="5">Larger</option>
+        <option value="6">Very Large</option>
+      </select>
+      <select id="selHeading" onChange="doHead(this.options[this.selectedIndex].value)">
+        <option value="">-- Heading --</option>
+        <option value="Heading 1">H1</option>
+        <option value="Heading 2">H2</option>
+        <option value="Heading 3">H3</option>
+        <option value="Heading 4">H4</option>
+        <option value="Heading 5">H5</option>
+        <option value="Heading 6">H6</option>
+      </select>
+    </td>
+</tr>
+
+</table>
+
+<% // hack to support iframe's src attribute doing a call out 
+// No longer needed because form is now session scope
+//session.setAttribute("weblogEntryFormEx", 
+    //request.getAttribute("weblogEntryFormEx")); 
+%>
+<table width="95%" border="0" cellspacing="0" cellpadding="0" >
+<tr>
+    <td><iframe id="iView" width="100%" height="250" tabindex="2">
+        Your browser does not support iframes.  
+        Either change browsers or select a 
+        different editor for your website.</iframe>
+    </td>
+</tr>
+</table>
+<script language="JavaScript">
+    iView.document.designMode = 'On';
+    iView.document.open();
+    iView.document.write(document.weblogEntryFormEx.text.value);
+    iView.document.close();
+</script>
+

Added: incubator/roller/trunk/web/weblog/editor-ekit.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/editor-ekit.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/editor-ekit.jsp (added)
+++ incubator/roller/trunk/web/weblog/editor-ekit.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,83 @@
+
+<%-- This page is designed to be included in edit-weblog.jsp --%>
+<%@ page import="org.roller.presentation.weblog.formbeans.WeblogEntryFormEx" %>
+<%@ include file="/taglibs.jsp" %>
+
+<script type="text/javascript">
+<!--
+function postWeblogEntry(publish)
+{
+    document.weblogEntryFormEx.text.value = document.Ekit.getDocumentText();
+    if (publish)
+        document.weblogEntryFormEx.publishEntry.value = "true";
+    document.weblogEntryFormEx.submit();
+}
+-->
+</script>
+
+<html:hidden property="text" />
+
+<%-- Use the Ekit applet --%>
+
+<%--
+<%
+String text = "";
+WeblogEntryFormEx form 
+    = (WeblogEntryFormEx) request.getAttribute("weblogEntryFormEx");
+if (form.getText() != null) {
+    text = form.getText();
+}
+String entryText = "<html><head></head><body>"+text+"</body></html>";
+%>
+<jsp:plugin type="applet" code="com.hexidec.ekit.EkitApplet.class" tabindex="2" 
+    codebase="." jreversion="1.3" height="350" width="90%" name="Ekit"
+    archive="ekitapplet.jar" type="application/x-java-applet;version=1.3"
+    nspluginurl="http://java.sun.com/products/plugin/1.3.0_01/plugin-install.html" 
+    iepluginurl="http://java.sun.com/products/plugin/1.3.0_01/jinstall-130_01-win32.cab#Version=1,3,0,1">
+    <jsp:params>
+        <jsp:param name="stylesheet" value="ekit.css"/>
+        <jsp:param name="langcode" value="en" />
+        <jsp:param name="langcountry" value="US" />
+        <jsp:param name="toolbar" value="true"/>
+        <jsp:param name="sourceview" value="false"/>
+        <jsp:param name="exclusive" value="true"/>
+        <jsp:param name="menuicons" value="true"/>
+        <jsp:param name="scriptable" value="true"/>
+        <jsp:param name="document" value="<%=entryText%>"/>
+    </jsp:params>
+    <jsp:fallback>
+        <p>Unable to start Java Plugin.</p>
+  </jsp:fallback>
+</jsp:plugin>
+--%>
+
+<APPLET CODEBASE="." CODE="com.hexidec.ekit.EkitApplet.class" 
+    ARCHIVE="ekitapplet.jar" NAME="Ekit" WIDTH="95%" HEIGHT="350">
+<PARAM NAME="codebase" VALUE=".">
+<PARAM NAME="code" VALUE="com.hexidec.ekit.EkitApplet.class">
+<PARAM NAME="archive" VALUE="ekitapplet.jar">
+<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">
+<PARAM NAME="scriptable" VALUE="true">
+
+<!-- Load text into Ekit applet by using the form bean -->
+<PARAM NAME="DOCUMENT" 
+    VALUE="<HTML><HEAD></HEAD><BODY><bean:write 
+        name="weblogEntryFormEx" property="text" /></BODY></HTML>">
+
+<PARAM NAME="STYLESHEET" VALUE="ekit.css">
+<PARAM NAME="LANGCODE" VALUE="en">
+<PARAM NAME="LANGCOUNTRY" VALUE="US">
+<PARAM NAME="TOOLBAR" VALUE="true">
+<PARAM NAME="SOURCEVIEW" VALUE="false">
+<PARAM NAME="EXCLUSIVE" VALUE="true">
+<PARAM NAME="MENUICONS" VALUE="true">
+</APPLET>   
+
+
+<br /><a href="http://www.hexidec.com">Ekit</a> 
+editor by Howard Kistler of 
+<a href="http://www.hexidec.com">hexidec codex</a>
+<br />
+<br />
+
+

Added: incubator/roller/trunk/web/weblog/editor-midas.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/editor-midas.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/editor-midas.jsp (added)
+++ incubator/roller/trunk/web/weblog/editor-midas.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,430 @@
+
+<%-- This page is designed to be included in edit-weblog.jsp --%>
+
+<%@ include file="/taglibs.jsp" %>
+
+<html:hidden property="text" />
+
+<script type="text/javascript">
+<!--
+    function postWeblogEntry(publish)
+    {
+        document.weblogEntryFormEx.text.value = document.getElementById('edit').contentWindow.document.body.innerHTML;
+        if (publish) document.weblogEntryFormEx.publishEntry.value = "true";
+        document.weblogEntryFormEx.submit();
+    }
+-->
+</script>
+
+<%-- The rest of this is straight from the Midas demo, except the DMJ_MOD marked changes --%>
+
+<style type="text/css">
+.imagebutton {height: 22; width: 23; border: solid 2px #C0C0C0; background-color: #C0C0C0}
+.image {position: relative; left: 1; top: 1; height:20; width:21; border:none;}
+.toolbar {height: 30; background-color: #C0C0C0;}
+</style>
+
+<script>
+
+var command = "";
+
+function InitToolbarButtons() {
+  kids = document.getElementsByTagName('DIV');
+
+  for (var i=0; i < kids.length; i++) {
+    if (kids[i].className == "imagebutton") {
+      kids[i].onmouseover = tbmouseover;
+      kids[i].onmouseout = tbmouseout;
+      kids[i].onmousedown = tbmousedown;
+      kids[i].onmouseup = tbmouseup;
+      kids[i].onclick = tbclick;
+    }
+  }
+}
+
+function tbmousedown(e)
+{
+  this.firstChild.style.left = 2;
+  this.firstChild.style.top = 2;
+  this.style.border="inset 2px";
+  e.preventDefault();
+}
+
+function tbmouseup()
+{
+  this.firstChild.style.left = 1;
+  this.firstChild.style.top = 1;
+  this.style.border="outset 2px";
+}
+
+function tbmouseout()
+{
+  this.style.border="solid 2px #C0C0C0";
+}
+
+function tbmouseover()
+{
+  this.style.border="outset 2px";
+}
+
+  function insertNodeAtSelection(win, insertNode)
+  {
+      // get current selection
+      var sel = win.getSelection();
+
+      // get the first range of the selection
+      // (there's almost always only one range)
+      var range = sel.getRangeAt(0);
+
+      // deselect everything
+      sel.removeAllRanges();
+
+      // remove content of current selection from document
+      range.deleteContents();
+
+      // get location of current selection
+      var container = range.startContainer;
+      var pos = range.startOffset;
+
+      // make a new range for the new selection
+      range=document.createRange();
+
+      if (container.nodeType==3 && insertNode.nodeType==3) {
+
+        // if we insert text in a textnode, do optimized insertion
+        container.insertData(pos, insertNode.nodeValue);
+
+        // put cursor after inserted text
+        range.setEnd(container, pos+insertNode.length);
+        range.setStart(container, pos+insertNode.length);
+
+      } else {
+
+
+        var afterNode;
+        if (container.nodeType==3) {
+
+          // when inserting into a textnode
+          // we create 2 new textnodes
+          // and put the insertNode in between
+
+          var textNode = container;
+          container = textNode.parentNode;
+          var text = textNode.nodeValue;
+
+          // text before the split
+          var textBefore = text.substr(0,pos);
+          // text after the split
+          var textAfter = text.substr(pos);
+
+          var beforeNode = document.createTextNode(textBefore);
+          var afterNode = document.createTextNode(textAfter);
+
+          // insert the 3 new nodes before the old one
+          container.insertBefore(afterNode, textNode);
+          container.insertBefore(insertNode, afterNode);
+          container.insertBefore(beforeNode, insertNode);
+
+          // remove the old node
+          container.removeChild(textNode);
+
+        } else {
+
+          // else simply insert the node
+          afterNode = container.childNodes[pos];
+          container.insertBefore(insertNode, afterNode);
+        }
+
+        range.setEnd(afterNode, 0);
+        range.setStart(afterNode, 0);
+      }
+
+      sel.addRange(range);
+  };
+
+function getOffsetTop(elm) {
+
+  var mOffsetTop = elm.offsetTop;
+  var mOffsetParent = elm.offsetParent;
+
+  while(mOffsetParent){
+    mOffsetTop += mOffsetParent.offsetTop;
+    mOffsetParent = mOffsetParent.offsetParent;
+  }
+ 
+  return mOffsetTop;
+}
+
+function getOffsetLeft(elm) {
+
+  var mOffsetLeft = elm.offsetLeft;
+  var mOffsetParent = elm.offsetParent;
+
+  while(mOffsetParent){
+    mOffsetLeft += mOffsetParent.offsetLeft;
+    mOffsetParent = mOffsetParent.offsetParent;
+  }
+ 
+  return mOffsetLeft;
+}
+
+function tbclick()
+{
+  if ((this.id == "forecolor") || (this.id == "hilitecolor")) {
+    parent.command = this.id;
+    buttonElement = document.getElementById(this.id);
+    document.getElementById("colorpalette").style.left = getOffsetLeft(buttonElement);
+    document.getElementById("colorpalette").style.top = getOffsetTop(buttonElement) + buttonElement.offsetHeight;
+    document.getElementById("colorpalette").style.visibility="visible";
+  } else if (this.id == "createlink") {
+    var szURL = prompt("Enter a URL:", "");
+    document.getElementById('edit').contentWindow.document.execCommand("CreateLink",false,szURL)
+  } else if (this.id == "createtable") {
+    e = document.getElementById("edit");
+    rowstext = prompt("enter rows");
+    colstext = prompt("enter cols");
+    rows = parseInt(rowstext);
+    cols = parseInt(colstext);
+    if ((rows > 0) && (cols > 0)) {
+      table = e.contentWindow.document.createElement("table");
+      table.setAttribute("border", "1");
+      table.setAttribute("cellpadding", "2");
+      table.setAttribute("cellspacing", "2");
+      tbody = e.contentWindow.document.createElement("tbody");
+      for (var i=0; i < rows; i++) {
+        tr =e.contentWindow.document.createElement("tr");
+        for (var j=0; j < cols; j++) {
+          td =e.contentWindow.document.createElement("td");
+          br =e.contentWindow.document.createElement("br");
+          td.appendChild(br);
+          tr.appendChild(td);
+        }
+        tbody.appendChild(tr);
+      }
+      table.appendChild(tbody);      
+      insertNodeAtSelection(e.contentWindow, table);
+    }
+  } else {
+    document.getElementById('edit').contentWindow.document.execCommand(this.id, false, null);
+  }
+}
+
+function Select(selectname)
+{
+  var cursel = document.getElementById(selectname).selectedIndex;
+  /* First one is always a label */
+  if (cursel != 0) {
+    var selected = document.getElementById(selectname).options[cursel].value;
+    document.getElementById('edit').contentWindow.document.execCommand(selectname, false, selected);
+    document.getElementById(selectname).selectedIndex = 0;
+  }
+  document.getElementById("edit").contentWindow.focus();
+}
+
+function dismisscolorpalette()
+{
+  document.getElementById("colorpalette").style.visibility="hidden";
+}
+
+function Start() {
+  document.getElementById('edit').contentWindow.document.designMode = "on";
+  try 
+  {
+    //document.getElementById('edit').contentWindow.document.execCommand("undo", false, null);
+  }  
+  catch (e) 
+  {
+    alert("This demo is not supported on your level of Mozilla.");
+  }
+
+  InitToolbarButtons();
+  document.addEventListener("mousedown", dismisscolorpalette, true);
+  document.getElementById("edit").contentWindow.document.addEventListener("mousedown", dismisscolorpalette, true);
+  document.addEventListener("keypress", dismisscolorpalette, true);
+  document.getElementById("edit").contentWindow.document.addEventListener("keypress", dismisscolorpalette, true);
+
+  <%-- DMJ_MOD --%>
+  document.getElementById('edit').contentWindow.document.body.innerHTML = document.weblogEntryFormEx.text.value;
+}
+
+</script>
+
+<%-- DMJ_MOD  commented this out, Roller provides the body
+</head> 
+<body onLoad="Start()">
+<h2>Please note that the changing of text format (Heading, Paragraph, etc.) will only function
+properly on a 1.3b build dated after January 26, 2003. Thanks.</h2>
+--%>
+
+<table bgcolor="#C0C0C0" id="toolbar1">
+<tr>
+<td>
+
+<%-- DMJ_MOD change image paths to add images/midas --%>
+
+<div class="imagebutton" id="cut"><img class="image" src="images/midas/cut.gif" alt="Cut" title="Cut"></div>
+</td>
+<td>
+<div class="imagebutton" id="copy"><img class="image" src="images/midas/copy.gif" alt="Copy" title="Copy"></div>
+</td>
+<td>
+<div class="imagebutton" id="paste"><img class="image" src="images/midas/paste.gif" alt="Paste" title="Paste"></div>
+<td>
+</td>
+<td>
+</td>
+<td>
+<div class="imagebutton" id="undo"><img class="image" src="images/midas/undo.gif" alt="Undo" title="Undo"></div>
+</td>
+<td>
+<div class="imagebutton" id="redo"><img class="image" src="images/midas/redo.gif" alt="Redo" title="Redo"></div>
+</td>
+
+<td>
+</td>
+<td>
+<div style="left: 10;" class="imagebutton" id="createlink"><img class="image" src="images/midas/link.gif" alt="Insert Link" title="Insert Link"></div>
+</td>
+<td>
+</td>
+<td>
+<div style="left: 10;" class="imagebutton" id="createtable"><img class="image" src="images/midas/table.gif" alt="Insert Table" title="Insert Table"></div>
+</td>
+</tr>
+</table>
+<br>
+<table bgcolor="#C0C0C0" id="toolbar2">
+<tr>
+<td>
+<select id="formatblock" onchange="Select(this.id);">
+
+  <option value="<p>">Normal</option>
+  <option value="<p>">Paragraph</option>
+  <option value="<h1>">Heading 1 <h1></option>
+  <option value="<h2>">Heading 2 <h2></option>
+  <option value="<h3>">Heading 3 <h3></option>
+  <option value="<h4>">Heading 4 <h4></option>
+
+  <option value="<h5>">Heading 5 <h5></option>
+  <option value="<h6>">Heading 6 <h6></option>
+  <option value="<address>">Address <ADDR></option>
+  <option value="<pre>">Formatted <pre></option>
+</select>
+</td>
+<td>
+<select id="fontname" onchange="Select(this.id);">
+  <option value="Font">Font</option>
+
+  <option value="Arial">Arial</option>
+  <option value="Courier">Courier</option>
+  <option value="Times New Roman">Times New Roman</option>
+</select>
+</td>
+<td>
+<select unselectable="on" id="fontsize" onchange="Select(this.id);">
+  <option value="Size">Size</option>
+  <option value="1">1</option>
+
+  <option value="2">2</option>
+  <option value="3">3</option>
+  <option value="4">4</option>
+  <option value="5">5</option>
+  <option value="6">6</option>
+  <option value="7">7</option>  
+
+</select>
+</td>
+
+<%-- DMJ_MOD change image paths to add images/midas --%>
+
+<td>
+<div class="imagebutton" id="bold"><img class="image" src="images/midas/bold.gif" alt="Bold" title="Bold"></div>
+</td>
+<td>
+<div class="imagebutton" id="italic"><img class="image" src="images/midas/italic.gif" alt="Italic" title="Italic"></div>
+</td>
+<td>
+<div class="imagebutton" id="underline"><img class="image" src="images/midas/underline.gif" alt="Underline" title="Underline"></div>
+</td>
+<td>
+</td>
+<td>
+<div style="left: 10;" class="imagebutton" id="forecolor"><img class="image" src="images/midas/forecolor.gif" alt="Text Color" title="Text Color"></div>
+</td>
+<td>
+
+<div style="left: 40;" class="imagebutton" id="hilitecolor"><img class="image" src="images/midas/backcolor.gif" alt="Background Color" title="Background Color"></div>
+</td>
+<td>
+</td>
+<td>
+<div style="left: 10;" class="imagebutton" id="justifyleft"><img class="image" src="images/midas/justifyleft.gif" alt="Align Left" title="Align Left"></div>
+</td>
+<td>
+<div style="left: 40;" class="imagebutton" id="justifycenter"><img class="image" src="images/midas/justifycenter.gif" alt="Center" title="Center"></div>
+</td>
+<td>
+<div style="left: 70;" class="imagebutton" id="justifyright"><img class="image" src="images/midas/justifyright.gif" alt="Align Right" title="Align Right"></div>
+</td>
+<td>
+</td>
+<td>
+<div style="left: 10;" class="imagebutton" id="insertorderedlist"><img class="image" src="images/midas/orderedlist.gif" alt="Ordered List" title="Ordered List"></div>
+
+</td>
+<td>
+<div style="left: 40;" class="imagebutton" id="insertunorderedlist"><img class="image" src="images/midas/unorderedlist.gif" alt="Unordered List" title="Unordered List"></div>
+</td>
+<td>
+</td>
+<td>
+<div style="left: 10;" class="imagebutton" id="outdent"><img class="image" src="images/midas/outdent.gif" alt="Outdent" title="Outdent"></div>
+</td>
+<td>
+<div style="left: 40;" class="imagebutton" id="indent"><img class="image" src="images/midas/indent.gif" alt="Indent" title="Indent"></div>
+</td>
+</tr>
+</table>
+<br />
+<%-- DMJ_MOD added weblogs/ to colors.html path --%>
+<iframe width="250" height="170" id="colorpalette" src="weblog/colors.html" style="visibility:hidden; position: absolute;"></iframe>
+<iframe id="edit" width="95%" height="350px"></iframe>
+<script type="text/javascript">
+function viewsource(source)
+{
+  if (source) {
+    var html = document.createTextNode(document.getElementById('edit').contentWindow.document.body.innerHTML);
+    document.getElementById('edit').contentWindow.document.body.innerHTML = "";
+    document.getElementById('edit').contentWindow.document.body.appendChild(html);
+    document.getElementById("toolbar1").style.visibility="hidden";
+    document.getElementById("toolbar2").style.visibility="hidden";  
+  } else {
+    var html = document.getElementById('edit').contentWindow.document.body.ownerDocument.createRange();
+    html.selectNodeContents(document.getElementById('edit').contentWindow.document.body);
+    document.getElementById('edit').contentWindow.document.body.innerHTML = html.toString();
+    document.getElementById("toolbar1").style.visibility="visible";
+    document.getElementById("toolbar2").style.visibility="visible";  
+  }
+}
+
+function usecss(source)
+{
+  document.getElementById('edit').contentWindow.document.execCommand("useCSS", false, !(source));  
+}
+
+function readonly(source)
+{
+    document.getElementById('edit').contentWindow.document.execCommand("readonly", false, !(source));  
+}
+</script>
+<br />
+<input type="checkbox" onclick="viewsource(this.checked)">
+View HTML Source</input>
+<input checked type="checkbox" onclick="usecss(this.checked)">
+Use CSS</input>
+<input type="checkbox" onclick="readonly(this.checked)">
+Read only</input>
+
+<br />
+<br />
+

Added: incubator/roller/trunk/web/weblog/editor-text-js.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/editor-text-js.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/editor-text-js.jsp (added)
+++ incubator/roller/trunk/web/weblog/editor-text-js.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,241 @@
+
+<%-- This page is designed to be included in edit-weblog.jsp --%>
+
+<%@ include file="/taglibs.jsp" %>
+<script type="text/javascript" src="<html:rewrite page="/theme/scripts/xmlp.js"/>"></script>
+<script type="text/javascript">
+<!--  
+var expires = new Date();
+expires.setTime(expires.getTime() + 24 * 30 * 60 * 60 * 1000); // sets it for approx 30 days.
+
+function doParse() {
+    var parser = new XMLParser();
+    var form = document.forms[0];
+    // wrap contents of textarea with root element
+    var xml = "<root>" + form.text.value + "</root>";
+    try 
+    {
+        parser.parse(xml);
+    }
+    catch (e) 
+    {
+        var msg = "Invalid XML: " + e.message;
+            msg += "\n\nClick OK to continue posting with (possibly) invalid markup.";
+        var ans = confirm(msg);
+        if (ans) 
+        {
+            return true;
+        } 
+        else 
+        {
+            return false;
+        }
+    }
+    return true;
+}
+
+function postWeblogEntry(publish)
+{   
+    if (document.getElementById("parseXML").checked) {
+        setCookie("parseXML","true",expires,"/");
+        if (doParse()) {        
+            if (publish) {
+                document.weblogEntryFormEx.publishEntry.value = "true";
+            }
+            document.weblogEntryFormEx.submit();
+        }
+    } else {
+        deleteCookie("parseXML");
+        if (publish) {
+            document.weblogEntryFormEx.publishEntry.value = "true";
+        }
+        document.weblogEntryFormEx.submit();
+    }
+}
+
+function htmlcode(theform,htmltag,prompttext) 
+{
+	// insert <x>yyy</x> style markup
+	inserttext = prompt(tag_prompt+"\n<"+htmltag+">xxx</"+htmltag+">",'');
+	if ((inserttext != null) && (inserttext != "")) {
+		theform.text.value += "<"+htmltag+">"+inserttext+"</"+htmltag+"> ";
+	}
+	theform.text.focus();
+}
+
+// *******************************************************
+
+function dolist(theform) {
+// inserts list with option to have numbered or alphabetical type
+	listtype = prompt(list_type_prompt, "");
+	if ((listtype == "b") || (listtype == "1")) {
+		if (listtype == "b") {
+			thelist = "<ul>\n";
+			listend = "</ul> ";
+		}
+		else {
+			if (listtype == "1") {
+				thelist = "<ol>\n";
+				listend = "</ol> ";
+			}
+		}
+	}
+	else {
+		thelist = "<ul>\n";
+		listend = "</ul> ";
+	}
+	listentry = "initial";
+	while ((listentry != "") && (listentry != null)) {
+		listentry = prompt(list_item_prompt, "");
+		if ((listentry != "") && (listentry != null))
+			thelist = thelist+"<li>"+listentry+"\n";
+		}
+	theform.text.value += thelist+listend;
+	theform.text.focus();
+}
+
+// *******************************************************
+
+function htmllink(theform,thetag) {
+// inserts named url or email link
+	linktext = prompt(link_text_prompt,"");
+	var prompttext;
+	if (thetag == "url") {
+		thetype = "a href=\"";
+		prompt_text = link_url_prompt;
+		prompt_contents = "http://";
+	}
+	else {
+		thetype = "a href=mailto:";
+		prompt_text = link_email_prompt;
+		prompt_contents = "";
+	}
+	linkurl = prompt(prompt_text,prompt_contents);
+	if ((linkurl != null) && (linkurl != "")) {
+		theform.text.value += "<"+thetype+linkurl+"\">"+linktext+"</a> ";
+	}
+	else {
+		theform.text.value += "<"+thetype+linkurl+"\">"+linktext+"</a> ";
+	}
+	theform.text.focus();
+}
+
+// *******************************************************
+
+function insertimage(theform) {
+	//insert <img src="" alt="" align=""> tag
+	imgsrc = prompt(img_src_prompt,"http://");
+	imgalt = prompt(img_alt_prompt,"");
+	imgalign = prompt(img_align_prompt,"");
+	if (imgalign == "r") imgalign = "right";
+	if (imgalign == "l") imgalign = "left";
+	theform.text.value += "<img src=\""+imgsrc+"\" alt=\""+imgalt+"\" align=\""+imgalign+"\">";
+	theform.text.focus();
+}
+
+// *******************************************************
+
+function insertmedia(theform,type) {
+	if (type == 'img') {
+		//insert <img src="" alt="" align=""> tag'
+		imgsrc = "";
+		imgsrc = theform.imagefile.options[theform.imagefile.selectedIndex].value;
+		imgsrc2 = ""
+		for (i=0; i < imgsrc.length; i++) {
+			if (imgsrc.charAt(i) == "'") {
+				imgsrc2 = imgsrc2 + "\"";
+			}
+			else {
+				imgsrc2 = imgsrc2 + imgsrc.charAt(i);
+			}
+		}
+		imgalt = prompt(img_alt_prompt,"");
+		imgalign = prompt(img_align_prompt,"");
+		if (imgalign == "r") imgalign = "right";
+		if (imgalign == "l") imgalign = "left";
+		theform.text.value += "<img src="+imgsrc2+" alt=\""+imgalt+"\" align=\""+imgalign+"\">";
+	}
+	else {
+		//type must be 'other'
+		linksrc = "";
+		linksrc = theform.mediafile.options[theform.mediafile.selectedIndex].value;
+		linktext = "";
+		linktext = prompt("Please enter the text for this link: ");
+		theform.text.value += "<a href="+linksrc+">"+linktext+"</a>";
+	}
+	theform.text.focus();
+}
+
+// *******************************************************
+// the following are the text prompts for buttons etc.
+// DO NOT ADD LINE-BREAKS BETWEEN THE "...." QUOTES!
+
+// MINI-HELP MESSAGES
+
+b_text = "Insert BOLD text";
+i_text = "Insert ITALIC text";
+u_text = "Insert UNDERLINED text";
+
+url_text = "Insert a hyperlink into your message";
+email_text = "Insert an email-link into your message";
+img_text = "Insert an image into your message";
+
+list_text = "Insert an ordered list into your message";
+quote_text = "Insert a quote into your message";
+
+// TEXT FOR POP-UP PROMPTS
+
+tag_prompt = "Enter the text to be formatted:";
+
+font_formatter_prompt = "Enter the text to be formatted with the specified";
+
+img_src_prompt = "Enter the url to the image you would like displayed";
+img_alt_prompt = "Enter the text to appear while the image is downloading";
+img_align_prompt = "Image alignment: leave blank for no alignment, r for right, l for left";
+
+link_text_prompt = "Enter the text to be displayed for the link (optional)";
+link_url_prompt = "Enter the full URL for the link";
+link_email_prompt = "Enter the email address for the link";
+
+list_type_prompt = "What type of list do you want? Enter '1' for a numbered list, enter 'b' for an bulleted list.";
+list_item_prompt = "Enter a list item.\nLeave the box empty or press 'Cancel' to complete the list.";
+// -->
+</script>
+
+<div>
+<div style="text-align: right; width: 95%">
+<div style="float: left">
+<input type="checkbox" name="parseXML" id="parseXML" 
+    onclick="parseXML()"> <label for="parseXML">Validate as XML</label>
+<script type="text/javascript">
+<!--
+// determine user's parse XML preference and check box appropriately
+if (getCookie("parseXML") == "true") {
+    document.getElementById('parseXML').checked = true;
+} else {
+    document.getElementById('parseXML').checked = false;
+}
+// -->
+</script>
+</div>
+
+<input type="button" name="bold" value="bold" tabindex="3"
+    onclick="htmlcode(weblogEntryFormEx,'strong',tag_prompt)" />
+<input type="button" name="italics" value="italics" tabindex="4"
+    onclick="htmlcode(weblogEntryFormEx,'em',tag_prompt)" />
+<input type="button" name="underline" value="underline" tabindex="5"
+    onclick="htmlcode(weblogEntryFormEx,'u',tag_prompt)" />
+<input type="button" name="list" value="list" tabindex="6"
+    onclick="dolist(weblogEntryFormEx)" />
+<input type="button" name="url" value="link" tabindex="7"
+    onclick="htmllink(weblogEntryFormEx,'url')" />
+<input type="button" name="email" value="e-mail" 
+    onclick="htmllink(weblogEntryFormEx,'email')" tabindex="8" />
+<input type="button" name="image" value="image" tabindex="9"
+    onclick="insertimage(weblogEntryFormEx)" />
+</div>
+<html:textarea property="text" cols="75" rows="20" 
+    styleId="text" style="width: 95%" tabindex="2"/> 
+</div>
+
+

Added: incubator/roller/trunk/web/weblog/editor-text.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/editor-text.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/editor-text.jsp (added)
+++ incubator/roller/trunk/web/weblog/editor-text.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,17 @@
+
+<%-- This page is designed to be included in edit-weblog.jsp --%>
+
+<%@ include file="/taglibs.jsp" %>
+
+<script type="text/javascript">
+<!--
+function postWeblogEntry(publish)
+{
+    if (publish)
+        document.weblogEntryFormEx.publishEntry.value = "true";
+    document.weblogEntryFormEx.submit();
+}
+// -->
+</script>
+
+<html:textarea property="text" cols="75" rows="20" style="width: 100%" tabindex="2"/>

Added: incubator/roller/trunk/web/weblog/export-entries.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/export-entries.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/export-entries.jsp (added)
+++ incubator/roller/trunk/web/weblog/export-entries.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,62 @@
+<%@ include file="/theme/header.jsp" %>
+<%@ page import="org.roller.presentation.BasePageModel" %>
+<%
+BasePageModel model = (BasePageModel)request.getAttribute("model");
+%>
+
+<h1><fmt:message key="weblogEntryExport.title" /></h1>
+
+<roller:StatusMessage/>
+
+<html:form action="/exportEntries" method="post" focus="title">
+
+    <html:hidden name="method" property="method" value="export"/>
+
+    <h3><fmt:message key="weblogEntryQuery.section.dateRange" /></h3>
+    
+    <div class="row">
+        <label style="width:20%; float:left; text-align:right; padding: 2px" for="startDateString">
+           <fmt:message key="weblogEntryQuery.label.startDate" />:
+        </label>
+        <roller:Date property="startDateString" dateFormat='<%= model.getShortDateFormat() %>' />
+    </div>
+    
+    <div class="row">
+        <label style="width:20%; float:left; text-align:right; padding: 2px" for="endDateString">
+           <fmt:message key="weblogEntryQuery.label.endDate" />:
+        </label>
+        <roller:Date property="endDateString" dateFormat='<%= model.getShortDateFormat() %>' />
+    </div>
+    
+    <h3><fmt:message key="weblogEntryQuery.section.format" /></h3>
+    
+    <div class="row">
+        <label style="width:20%; float:left; text-align:right; padding: 2px" for="fileBy">
+            <fmt:message key="weblogEntryQuery.label.separateEntries" />:
+        </label>
+        <select name="fileBy">
+            <option><fmt:message key="weblogEntryQuery.label.day" /></option>
+            <option selected="selected"><fmt:message key="weblogEntryQuery.label.month" /></option>
+            <option><fmt:message key="weblogEntryQuery.label.year" /></option>
+        </select>
+    </div>
+    
+    <div class="row">
+        <label style="width:20%; float:left; text-align:right; padding: 2px" for="exportFormat">
+            <fmt:message key="weblogEntryQuery.label.exportTo" />:
+        </label>
+        <input type="radio" name="exportFormat" value="Atom" checked="checked">
+            <fmt:message key="weblogEntryQuery.label.atom" /></input>
+        <br />
+        <input type="radio" name="exportFormat" value="RSS" >
+            <fmt:message key="weblogEntryQuery.label.rss" /></input>
+    </div>
+    
+    <div class="buttonBox">
+        <input type="button" name="post" 
+            value='<fmt:message key="weblogEntryQuery.button.export" />' onclick="submit()" />
+    </div>
+    
+</html:form>
+
+<%@ include file="/theme/footer.jsp" %>

Added: incubator/roller/trunk/web/weblog/import-entries.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/import-entries.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/import-entries.jsp (added)
+++ incubator/roller/trunk/web/weblog/import-entries.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,32 @@
+<%@ include file="/theme/header.jsp" %>
+
+<h1><fmt:message key="weblogEntryImport.title" /></h1>
+
+<roller:StatusMessage/>
+
+<html:form action="/importEntries" method="post" focus="title">
+
+    <html:hidden name="method" property="method" value="importEntries"/>
+
+    <h3><fmt:message key="weblogEntryImport.selectXML" /></h3>
+
+    <table cellspacing="0" cellpadding="0" class="edit">
+        <tr>
+            <td><fmt:message key="weblogEntryImport.XMLFile" /><br />
+            <html:select property="importFileName" size="1" >
+                <html:options property="xmlFiles" />
+            </html:select>
+            </td>
+        </tr>
+
+        <tr>
+            <td class="buttonBox" colspan="1">
+                <input type="button" name="post" value='<fmt:message key="weblogEntryImport.button.import" />'
+                        onclick="submit()" />
+            </td>
+        </tr>
+    </table>
+
+</html:form>
+
+<%@ include file="/theme/footer.jsp" %>
\ No newline at end of file

Added: incubator/roller/trunk/web/weblog/referers.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/referers.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/referers.jsp (added)
+++ incubator/roller/trunk/web/weblog/referers.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,42 @@
+<%@ include file="/theme/header.jsp" %>
+
+<%-- Form allows deleting of referers --%>
+<h1><fmt:message key="referers.todaysReferers" /></h1>
+<html:form action="/referers" method="post">
+<input type="hidden" name="method" value="delete" />
+
+<%-- Table of referers, with check box for each --%>
+<table width="75%" class="rollertable" >
+    <tr class="rollertable">
+        <th class="rollertable"></th>
+        <th class="rollertable"><fmt:message key="referers.url" /></th>
+        <th class="rollertable"><fmt:message key="referers.hits" /></th>
+    </tr>
+ 
+    <c:forEach var="referer" items="${referers}">
+        <tr>
+            <td class="rollertable">
+                <input type="checkbox" name="id" value='<c:out value="${referer.id}" />' />
+            </td>
+            <td class="rollertable">               
+               <c:out value="${referer.displayUrl}" escapeXml="false" />
+            </td>
+            <td class="rollertable"><c:out value="${referer.dayHits}" /></td>
+        </tr>
+    </c:forEach> 
+    
+</table>
+
+<br />
+<input type="submit" value='<fmt:message key="referers.deleteSelected" />' /></input>
+</html:form>
+
+<%-- Form allows reset of day hits --%>
+<h2><fmt:message key="referers.hitCounters" /></h2>
+<p><fmt:message key="referers.hits" />: <c:out value="${pageHits}"/></p>
+<html:form action="/referers" method="post">
+    <input type="hidden" name="method" value="reset" />
+    <input type="submit" value='<fmt:message key="referers.reset" />' /></input>
+</html:form>
+
+<%@ include file="/theme/footer.jsp" %>

Added: incubator/roller/trunk/web/weblog/spellcheck-entry.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/weblog/spellcheck-entry.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/weblog/spellcheck-entry.jsp (added)
+++ incubator/roller/trunk/web/weblog/spellcheck-entry.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,85 @@
+<!-- spellcheck-entry.jsp -->
+<%@ page import="org.roller.model.RollerSpellCheck,com.swabunga.spell.event.SpellCheckEvent" %>
+<%@ page import="org.apache.commons.lang.StringUtils,java.util.*" %>
+<%@ include file="/theme/header.jsp" %>
+<script type="text/javascript">
+<!--
+    function postWeblogEntry(activeForm,publish)
+    {
+        if (publish)
+            activeForm.publishEntry.value = "true";
+        activeForm.submit();
+    }
+    
+    function spellcheck(activeForm)
+    {
+        activeForm.method.value = "spellCheck";
+        postWeblogEntry(activeForm);
+    }
+// -->
+</script>
+
+<roller:StatusMessage/>
+
+<html:form action="/weblog" method="post">
+    <bean:define id="text" name="weblogEntryFormEx" 
+          property="text" type="java.lang.String" />
+    <input type="hidden" name="method" value="spellCheck"/>
+    <input type="hidden" name="publishEntry" value="false" />
+    <html:hidden property="title" />
+    <html:hidden property="categoryId" />
+    <html:hidden property="dateString" />
+    <html:hidden property="hours" />
+    <html:hidden property="minutes" />
+    <html:hidden property="seconds" />
+    <html:hidden property="day"/>
+    <html:hidden property="id"/>
+    <html:hidden property="anchor"/>
+<h3>Use Spell Check Results</h3>
+
+    <table class="rTable" width="90%" border="1">
+        <tr class="rEvenTr">
+            <td class="rTd"><font style='font-size: 14px; vertical-align: middle; line-height= 18px; font-family: verdana, sans-serif;'><%= escapeText %></font></td>
+        </tr>
+    </table>
+    <br />
+    <input type="button" name="post" value="Post to Weblog" 
+            onClick="javascript:postWeblogEntry(this.form,true)" />
+    &nbsp; &nbsp;
+    <input type="button" name="draft" value="Save as Draft" 
+            onClick="javascript:postWeblogEntry(this.form)" />      
+
+</html:form>
+
+<h2>Or</h2>
+
+<html:form action="/weblog" method="post" focus="title">
+
+<h3>Edit Manually</h3>
+    <input type="hidden" name="method" value="update"/>
+    <input type="hidden" name="publishEntry" value="false" />
+    <html:hidden property="title" />
+    <html:hidden property="categoryId" />
+    <html:hidden property="dateString" />
+    <html:hidden property="hours" />
+    <html:hidden property="minutes" />
+    <html:hidden property="seconds" />
+    <html:hidden property="day"/>
+    <html:hidden property="id"/>
+    <html:hidden property="anchor"/>
+    <html:textarea property="text" cols="75" rows="20" style="width: 90%"/> 
+    <br />
+    <br />
+    <input type="button" name="post" value="Post to Weblog" 
+            onClick="javascript:postWeblogEntry(this.form, true)" />
+    &nbsp; &nbsp;
+    <input type="button" name="draft" value="Save as Draft" 
+            onClick="javascript:postWeblogEntry(this.form)" />      
+    &nbsp; &nbsp;
+    <input type="button" name="spelling" value="Recheck" 
+            onClick="javascript:spellcheck(this.form)" />  
+
+</html:form>
+
+    
+<%@ include file="/theme/footer.jsp" %>
\ No newline at end of file

Added: incubator/roller/trunk/web/website/Maintenance.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/Maintenance.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/Maintenance.jsp (added)
+++ incubator/roller/trunk/web/website/Maintenance.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,23 @@
+<%@ include file="/theme/header.jsp" %>
+
+<h1><fmt:message key="maintenance.title" /></h1>
+    
+<html:form action="/maintenance" method="post">
+
+    <input type="hidden" name="method" value="" />
+
+    <fmt:message key="maintenance.prompt.index" /><br />
+    <input type="submit" value='<fmt:message key="maintenance.button.index" />' 
+    		  onclick="this.form.method.value='index'" />
+    	<br />	  
+    	<br />	  
+    		  
+    <fmt:message key="maintenance.prompt.flush" /><br />
+    <input type="submit" value='<fmt:message key="maintenance.button.flush" />' 
+    		  onclick="this.form.method.value='flushCache'" />
+    		  
+</html:form>
+
+<%@ include file="/theme/footer.jsp" %>
+
+

Added: incubator/roller/trunk/web/website/adminUser.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/adminUser.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/adminUser.jsp (added)
+++ incubator/roller/trunk/web/website/adminUser.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,65 @@
+
+<%@ include file="/theme/header.jsp" %>
+
+<roller:StatusMessage/>
+
+<h1><fmt:message key="userAdmin.title" /></h1>
+    
+<html:form action="/adminUser" method="post">
+    <p>
+    <strong><fmt:message key="userAdmin.editUser" />:</strong>         
+    <html:text property="userName" size="10" />
+    <input type="submit" value='<fmt:message key="userAdmin.edit" />' />
+    <input type="submit" value='<fmt:message key="userAdmin.rebuildIndex" />' onclick="this.form.method.value='index'" />
+    <html:hidden property="method" value="edit" />
+    </p>
+</html:form>
+
+<br />
+
+<c:if test="${not empty userAdminForm.userName}">
+    <h2><fmt:message key="userAdmin.userSettings" /></h2>
+    <html:form action="/adminUser" method="post">
+
+        <table>
+            <tr>
+                <td><fmt:message key="userAdmin.delete" /><br />
+                <html:checkbox property="delete" />
+                <span class="warning"><fmt:message key="userAdmin.warning" /></span>
+                </td>
+            </tr>
+			<tr>
+				<td><fmt:message key="userAdmin.enabled" /><br />
+				    <html:checkbox property="userEnabled" value="true" />
+				</td>
+            <tr>
+                <td><fmt:message key="userAdmin.name" /><br />
+                    <html:text property="fullName" size="50"/>
+                </td>
+            </tr>
+            <c:if test="${cookieLogin != 'true'}">
+            <tr>
+                <td><fmt:message key="userAdmin.password" /><br />
+                    <html:password property="password" size="50"/>
+                </td>
+            </tr>
+            </c:if>
+            <tr>
+                <td><fmt:message key="userAdmin.email" /><br />
+                <html:text property="emailAddress" size="50"/></input>
+                </td>
+            </tr>
+        </table>
+
+        <html:hidden property="id"/></input>
+        <html:hidden property="userName" /></input>
+
+        <input type="submit" value='<fmt:message key="userAdmin.save" />'/></input>
+        <html:hidden property="method" value="update"/></input>
+
+    </html:form>
+</c:if>
+
+<%@ include file="/theme/footer.jsp" %>
+
+

Added: incubator/roller/trunk/web/website/edit-page.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/edit-page.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/edit-page.jsp (added)
+++ incubator/roller/trunk/web/website/edit-page.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,54 @@
+
+<%@ include file="/theme/header.jsp" %>
+
+<roller:StatusMessage/>
+
+<html:form action="/page" method="post">
+
+	<h1><fmt:message key="pageForm.editPage" />:<bean:write name="pageForm" property="name" /></h1>
+	
+    <table>
+        <tr>
+            <td><fmt:message key="pageForm.name" /><br />
+            <html:text property="name" size="50"/>
+            </td>
+        </tr>
+        <tr>
+            <td><fmt:message key="pageForm.link" /><br />
+            <html:text property="link" size="50"/>
+            </td>
+        </tr>
+        <tr>
+            <td><fmt:message key="pageForm.description" /><br />
+            <html:textarea property="description" rows="3" cols="50"/>
+            </td>
+        </tr>
+        <tr>
+            <td><fmt:message key="pageForm.template" /><br />
+            <html:textarea property="template" cols="80" rows="30" style="width: 100%" />
+            </td>
+        </tr>
+    </table>
+
+    <html:hidden property="id"/>
+    <html:hidden property="name"/>
+
+    <br />
+    <input type="submit" value='<fmt:message key="pageForm.save" />' /></input>
+    <html:hidden property="method" value="update"/>
+
+</html:form>
+
+<%--
+Added by Matt Raible since the focus javascript generated by Struts 
+doesn't seem to work for forms with duplicate named elements.
+--%>
+<script type="text/javascript">
+<!--
+    document.forms[0].elements[0].focus();
+// -->
+</script>
+
+<%@ include file="/theme/footer.jsp" %>
+
+

Added: incubator/roller/trunk/web/website/edit-pages.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/edit-pages.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/edit-pages.jsp (added)
+++ incubator/roller/trunk/web/website/edit-pages.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,61 @@
+
+<%@ include file="/theme/header.jsp" %>
+
+<roller:StatusMessage/>
+
+<h1><fmt:message key="pagesForm.title" /></h1>
+
+<%-- table of pages --%>
+<table class="rollertable">
+    <tr>
+        <th width="10%"><fmt:message key="pagesForm.name" /></th>
+        <th width="10%"><fmt:message key="pagesForm.link" /></th>
+        <th width="70%"><fmt:message key="pagesForm.description" /></th>
+        <th width="5%"><fmt:message key="pagesForm.edit" /></th>
+        <th width="5%"><fmt:message key="pagesForm.remove" /></th>
+    </tr>
+    <logic:iterate id="p" name="pages" >
+        <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">
+
+            <td><bean:write name="p" property="name" /></td>
+            <td><bean:write name="p" property="link" /></td>
+            <td><bean:write name="p" property="description" /></td>
+
+            <%-- links to edit and remove page actions --%>
+            <td class="center">
+               <roller:link forward="editPage">
+                  <roller:linkparam id="username" name="user" property="userName" />
+                  <roller:linkparam id="pageid" name="p" property="id" />
+                  <img src="images/Edit16.png" border="0" alt="icon" />
+               </roller:link> 
+            </td>
+ 	
+            <td class="center">
+               <roller:link forward="removePage.ok">
+                  <roller:linkparam id="username" name="user" property="userName" />
+                  <roller:linkparam id="pageid" name="p" property="id" />
+                   <img src="images/Remove16.gif" border="0" alt="icon" />
+               </roller:link>
+            </td>
+ 	
+        </roller:row>
+    </logic:iterate>
+</table>
+
+<p><fmt:message key="pagesForm.hiddenNote" /></p>
+
+<%-- form to add a new page --%>
+<h2><fmt:message key="pagesForm.addNewPage" /></h2>
+<html:form action="/page" method="post" focus="name">
+
+    <fmt:message key="pagesForm.name"/>: <html:text property="name" size="30"/>
+	
+	<input type="submit" value='<fmt:message key="pagesForm.add" />' />
+	<input type="hidden" property="template" 
+		value="<html><body><fmt:message key="pagesForm.emptyPage" /></body></html>" />
+	<html:hidden property="method" value="add"/>
+	
+</html:form>
+
+<%@ include file="/theme/footer.jsp" %>
+

Added: incubator/roller/trunk/web/website/edit-website.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/edit-website.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/edit-website.jsp (added)
+++ incubator/roller/trunk/web/website/edit-website.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,163 @@
+<%@ include file="/theme/header.jsp" %>
+
+<roller:StatusMessage/>
+
+<h1><fmt:message key="websiteSettings.title" /></h1>
+<html:form action="/website" method="post">
+    <html:hidden property="method" value="update"/></input>
+
+    <html:hidden property="id"/></input>
+    <html:hidden property="weblogDayPageId" />
+    <html:hidden property="locale"/></input>
+    <html:hidden property="timezone"/></input>
+    <html:hidden property="editorTheme"/></input>
+    <html:hidden property="isEnabled"/></input>
+
+<table>
+
+    <tr>
+        <td class="propname" width="30%"><fmt:message key="websiteSettings.websiteTitle" />
+        <td><html:text property="name" size="60"/></input></td>
+    </tr>
+
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.websiteDescription" /></td>
+        <td><html:textarea property="description" rows="3" cols="40"/></td>
+    </tr>
+
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.homePage" /></td>
+        <td>
+            <html:select property="defaultPageId" size="1">
+                <html:options collection="pages"
+                    property="id" labelProperty="name" />
+            </html:select>
+        </td>
+    </tr>
+
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.editor" /></td>
+        <td>
+            <html:select property="editorPage" size="1">
+                <html:options name="editorPagesList" />
+            </html:select></p>
+       </td>
+    </tr>
+
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.defaultCategory" /></td>
+        <td>
+            <html:select property="defaultCategoryId" size="1">
+                <html:options collection="categories"
+                    property="id" labelProperty="name" />
+            </html:select>
+        </td>
+    </tr>
+
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.allowComments" /></td>
+        <td><html:checkbox property="allowComments" /></input></td>
+    </tr>
+<%
+RollerContext rc = RollerContext.getRollerContext(request);
+RollerConfig rollerConfig = rc.getRollerConfig();
+boolean emailComments = rollerConfig.getEmailComments().booleanValue();
+if (emailComments) { %>
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.emailComments" /></td>
+        <td><html:checkbox property="emailComments" onclick="toggleNextRow(this)" /></input></td>
+    </tr>
+
+    <tr <c:if test="${!websiteFormEx.emailComments}">style="display: none"</c:if>>
+        <td class="propname"><fmt:message key="websiteSettings.emailFromAddress" /></td>
+        <td><html:text size="50" property="emailFromAddress" /></input></td>
+    </tr>
+
+    <tr>
+        <td><h2><fmt:message key="websiteSettings.formatting" /></h2></td>
+        <td></td>
+    </tr>
+<% } %>
+
+<% if (org.roller.presentation.velocity.ContextLoader.hasPlugins()) { %>
+    <tr>
+        <td class="propname">Default Entry Formatters <br />(applied in the listed order)</td>
+        <td>
+        <logic:iterate id="plugin" type="org.roller.presentation.velocity.PagePlugin"
+            collection="<%= org.roller.presentation.velocity.ContextLoader.getPagePlugins() %>">
+            <html:multibox property="defaultPluginsArray"
+                title="<%= plugin.getName() %>" value="<%= plugin.getName() %>" /></input>
+            <label for="<%= plugin.getName() %>"><%= plugin.getName() %></label>
+            <a href="javascript:void(0);" onmouseout="return nd();"
+            onmouseover="return overlib('<%= plugin.getDescription() %>', STICKY, MOUSEOFF, TIMEOUT, 3000);">?</a>
+            <br />
+        </logic:iterate>
+        </td>
+    </tr>
+<% } else { %>
+    <html:hidden property="defaultPlugins" />
+<% } %>
+
+    <tr>
+        <td><h2><fmt:message key="websiteSettings.bloggerApi" /></h2></td>
+        <td></td>
+    </tr>
+
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.enableBloggerApi" /></td>
+        <td><html:checkbox property="enableBloggerApi" onclick="onEnableBloggerApi()" /></input></td>
+    </tr>
+
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.bloggerApiCategory" /></td>
+        <td>
+            <html:select property="bloggerCategoryId" size="1">
+                <html:options collection="bloggerCategories"
+                    property="id" labelProperty="name" />
+            </html:select>
+        </td>
+    </tr>
+
+    <tr>
+        <td><h2><fmt:message key="websiteSettings.spamPrevention" /></h2></td>
+        <td></td>
+    </tr>
+
+    <tr>
+        <td class="propname"><fmt:message key="websiteSettings.ignoreUrls" /></td>
+        <td><html:textarea property="ignoreWords" rows="3" cols="40"/></td>
+    </tr>
+    <tr>
+        <td>&nbsp;</td>
+    </tr>
+    <tr>
+        <td class="buttonBox" colspan="2">
+            <input type="submit" value='<fmt:message key="websiteSettings.button.update" />' />
+        </td>
+    </tr>
+</table>
+
+</html:form>
+
+<script type="text/javascript">
+<!--
+// Added since the focus javascript generated by Struts
+// doesn't seem to work for forms with duplicate named elements.
+document.forms[0].elements[0].focus();
+
+function onEnableBloggerApi()
+{
+    if ( document.websiteForm.enableBloggerApi.checked == true )
+    {
+        document.websiteForm.bloggerCategoryId.disabled = false;
+    }
+    else
+    {
+        document.websiteForm.bloggerCategoryId.disabled = true;
+    }
+}
+//-->
+</script>
+
+<%@ include file="/theme/footer.jsp" %>
+

Added: incubator/roller/trunk/web/website/export.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/export.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/export.jsp (added)
+++ incubator/roller/trunk/web/website/export.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,13 @@
+
+<%@ include file="/theme/header.jsp" %>
+
+<h3>Export Website to XML</h3>
+
+<p>The link below will retrieve all of your user data in Roller's own XML format.</p>
+
+<p>
+<a href="<%= request.getContextPath()+"/ExportServlet" %>">EXPORT</a>
+</p>
+
+<%@ include file="/theme/footer.jsp" %>
+

Added: incubator/roller/trunk/web/website/remove-page.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/remove-page.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/remove-page.jsp (added)
+++ incubator/roller/trunk/web/website/remove-page.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,37 @@
+
+<%@ include file="/theme/header.jsp" %>
+
+
+<h3>
+<jsp:useBean id="pageForm" scope="session" 
+	class="org.roller.presentation.forms.PageForm"/>
+Remove Page [<jsp:getProperty name="pageForm" property="name"/>]
+</h3>
+
+<p>Are you sure you want to remove this page?</p>
+<p>
+Page name = [<jsp:getProperty name="pageForm" property="name"/>]<br />
+Page id = [<jsp:getProperty name="pageForm" property="id"/>]
+</p>
+
+<table>
+<tr>
+	<td>
+		<html:form action="/page" method="post">
+			<html:submit value="Yes"/></input>
+			<html:hidden property="method" value="remove"/></input>
+			<html:hidden property="id" /></input>
+		</html:form>
+	</td>
+	<td>
+		<html:form action="/page" method="post">
+			<html:hidden name="user" property="userName" /></input>
+			<html:submit value="No"/></input>
+			<html:hidden property="method" value="cancel"/></input>
+		</html:form>
+	</td>
+</tr>
+</table>
+
+<%@ include file="/theme/footer.jsp" %>
+

Added: incubator/roller/trunk/web/website/rollerConfig.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/rollerConfig.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/rollerConfig.jsp (added)
+++ incubator/roller/trunk/web/website/rollerConfig.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,186 @@
+
+<%@ include file="/theme/header.jsp" %>
+
+<roller:StatusMessage/>
+
+<h1><fmt:message key="configForm.title" /></h1>
+<html:form action="/rollerConfig" method="post">
+
+    <html:hidden property="id"/></input>
+    <html:hidden property="databaseVersion"/></input>
+
+    <table border="0">
+
+    <tr>
+        <td colspan="2"><h2><fmt:message key="configForm.siteSettings" /></h2></td>
+    </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.siteName" /></td>
+            <td><html:text property="siteName" size="50" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.siteDescription" /></td>
+            <td><html:text property="siteDescription" size="50" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.siteAdminEmail" /></td>
+            <td><html:text property="emailAddress" size="50" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.absoluteUrl" /></td>
+            <td><html:text property="absoluteURL" size="50" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.enableLinkback" /></td>
+            <td><html:checkbox property="enableLinkback" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.searchIndexDir" /></td>
+            <td><html:text property="indexDir" size="50" /></td>
+        </tr>
+
+    <tr>
+        <td colspan="2"><h2><fmt:message key="configForm.userSettings" /></h2></td>
+    </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.allowNewUsers" /></td>
+            <td><html:checkbox property="newUserAllowed" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.adminUsers" /></td>
+            <td><html:text property="adminUsers" size="30"  /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.encryptPasswords" /></td>
+            <td><html:checkbox property="encryptPasswords" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.algorithm" /></td>
+            <td><html:text property="algorithm" size="5" /></td>
+        </tr>
+        
+        <tr>
+            <td class="propname"><fmt:message key="configForm.newUserThemes" /></td>
+            <td><html:text property="userThemes"/></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.editorPages" /></td>
+            <td><html:textarea property="editorPages" cols="40" rows="2"  /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.autoformatComments" /></td>
+            <td><html:checkbox property="autoformatComments" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.escapeCommentHtml" /></td>
+            <td><html:checkbox property="escapeCommentHtml" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.emailComments" /></td>
+            <td><html:checkbox property="emailComments" /></td>
+        </tr>
+
+        <tr>
+             <td colspan="2">&nbsp;</td>
+        </tr>
+
+    <tr>
+        <td colspan="2"><h2><fmt:message key="configForm.fileUploadSettings" /></h2></td>
+    </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.enableFileUploads" /></td>
+            <td><html:checkbox property="uploadEnabled" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.allowedExtensions" /></td>
+            <td><html:text property="uploadAllow" size="30"  /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.forbiddenExtensions" /></td>
+            <td><html:text property="uploadForbid" size="30"  /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.maxFileSize" /></td>
+            <td><html:text property="uploadMaxFileMB" size="5" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.maxDirSize" /></td>
+            <td><html:text property="uploadMaxDirMB" size="5" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.uploadDir" /></td>
+            <td><html:text property="uploadDir" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.uploadPath" /></td>
+            <td><html:text property="uploadPath" /></td>
+        </tr>
+
+        <tr>
+             <td colspan="2">&nbsp;</td>
+        </tr>
+
+    <tr>
+        <td colspan="2"><h2><fmt:message key="configForm.rssAggregatorSettings" /></h2></td>
+    </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.enableRssAggregator" /></td>
+            <td><html:checkbox property="enableAggregator" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.cacheIncomingRss" /></td>
+            <td><html:checkbox property="rssUseCache" /></td>
+        </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.rssNewsfeedCacheTime" /></td>
+            <td><html:text property="rssCacheTime" size="4" /></td>
+        </tr>
+
+    <tr>
+        <td colspan="2"><h2><fmt:message key="configForm.debuggingSettings" /></h2></td>
+    </tr>
+
+        <tr>
+            <td class="propname"><fmt:message key="configForm.enableMemoryDebugging" /></td>
+            <td><html:checkbox property="memDebug" /></td>
+        </tr>
+        <tr>
+            <td>&nbsp;</td>
+        </tr>
+        <tr>
+            <td class="buttonBox" colspan="2">
+                <input class="buttonBox" type="submit" value='<fmt:message key="configForm.save" />'/>
+            </td>
+        </tr>
+    </table>
+
+    <html:hidden property="method" value="update"/>
+
+</html:form>
+
+
+<%@ include file="/theme/footer.jsp" %>
\ No newline at end of file

Added: incubator/roller/trunk/web/website/theme-editor.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/theme-editor.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/theme-editor.jsp (added)
+++ incubator/roller/trunk/web/website/theme-editor.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,79 @@
+<%@ include file="/theme/header.jsp"%>
+<%
+String username = "";
+try
+{
+    RollerRequest rreq = RollerRequest.getRollerRequest(request);
+    UserData ud = rreq.getUser();
+    username = ud.getUserName();
+}
+catch (Exception e)
+{
+    throw new ServletException(e);
+}
+%>
+<h1><fmt:message key="themeEditor.title" /></h1>
+
+<html:form action="/themeEditor" method="post">
+
+<input type=hidden name="method" value='preview' />
+
+<table width="95%">
+
+	<tr>
+		<td>
+      <c:if test='${empty themeEditorForm.themeName || themeEditorForm.themeName == "Custom"}' >
+          <p><fmt:message key="themeEditor.yourThemeIsShownBelow" /></p>
+      </c:if>
+      <c:if test='${!empty themeEditorForm.themeName && themeEditorForm.themeName != "Custom"}' >
+          <p><fmt:message key="themeEditor.themeBelowIsCalled" /> <b><c:out value="${themeEditorForm.themeName}" /></b></p>
+          <p><fmt:message key="themeEditor.savePrompt" /></p>
+          <p><fmt:message key="themeEditor.saveWarning" /></p>  
+		      <input type="button" value='<fmt:message key="themeEditor.save" />' name="saveButton" 
+			       onclick="this.form.method.value='save';this.form.submit()" tabindex="4" />   
+		         &nbsp; &nbsp;	
+		      <input type="button" value='<fmt:message key="themeEditor.cancel" />' name="cancelButton" 
+			       onclick="this.form.method.value='cancel';this.form.submit()" tabindex="5" />
+      </c:if>			
+		</td>
+	</tr>
+
+	<tr>
+		<td>&nbsp;</td>
+	</tr>
+
+	<tr>
+		<td>	
+		    <p><fmt:message key="themeEditor.selectTheme" />:        
+		    <html:select property="themeName" size="1" onchange="this.form.submit()" >
+	          <html:options name="themes"/>
+		    </html:select>	</p>
+		</td>
+	</tr>
+	
+	<tr>
+		<td>
+		<iframe name="preview" id="preview" 
+			src="<%= request.getContextPath() %>/preview/<%= username %>/" 
+			frameborder=1 width="100%" height="400" 
+			marginheight="0" marginwidth="0"></iframe>
+		</td>
+	</tr>
+	
+</table>
+
+</html:form>
+
+
+<script type="text/javascript">
+<!--
+    function save()
+    {
+        //alert(document.themeEditorForm.method.value);
+        document.themeEditorForm.method.value = "save";
+        document.themeEditorForm.submit();
+    }
+// -->
+</script>
+
+<%@ include file="/theme/footer.jsp"%>
\ No newline at end of file

Added: incubator/roller/trunk/web/website/upload-file.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/upload-file.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/website/upload-file.jsp (added)
+++ incubator/roller/trunk/web/website/upload-file.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,34 @@
+<%@ include file="/theme/header.jsp" %>
+
+<roller:StatusMessage/>
+
+<h1><fmt:message key="uploadFiles.title" /></h1>
+<roller:FileUpload />
+
+<h2><fmt:message key="uploadFiles.manageFiles" /></h2>
+
+<html:form action="/uploadFiles" method="post">
+    <roller:FileManager />
+    <table>
+       <tr>
+          <td align="left">
+             <input type="submit" value='<fmt:message key="uploadFiles.button.delete" />' /></input>
+          </td>
+       </tr>
+    </table>
+    <input type="hidden" name="method" value="delete"></input>
+</html:form>
+
+<%--
+Added by Matt Raible since the focus javascript generated by Struts uses
+a name reference and IE seems to only focus on file inputs via elements[0]?
+--%>
+<script type="text/javascript">
+<!--
+    document.forms[0].elements[0].focus();
+// -->
+</script>
+
+
+<%@ include file="/theme/footer.jsp" %>
+

Added: incubator/roller/trunk/web/welcome.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/welcome.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/welcome.jsp (added)
+++ incubator/roller/trunk/web/welcome.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,16 @@
+
+<%@ include file="/theme/header.jsp" %>
+
+<h2><fmt:message key="welcome.title" /></h2>
+
+<p><fmt:message key="welcome.accountCreated" /></p>
+
+<p><b><fmt:message key="welcome.addressIs" />:</b> <c:out value="${weblogURL}"/></p>
+
+<p><b><fmt:message key="welcome.rssAddressIs" />:</b> <c:out value="${rssURL}"/></p>
+
+<p><a href="weblog.do?method=create&amp;rmik=New%20Entry"><fmt:message key="welcome.clickHere" /></a> 
+<fmt:message key="welcome.toLoginAndPost" /></p>
+
+<%@ include file="/theme/footer.jsp" %>
+