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/10/21 23:46:28 UTC
svn commit: r327589 [61/72] - in /incubator/roller/branches/roller_1.x: ./
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...
Added: incubator/roller/branches/roller_1.x/web/WEB-INF/jspwiki.properties
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/WEB-INF/jspwiki.properties?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/WEB-INF/jspwiki.properties (added)
+++ incubator/roller/branches/roller_1.x/web/WEB-INF/jspwiki.properties Fri Oct 21 14:27:36 2005
@@ -0,0 +1,37 @@
+
+# set this to point to your JSPWiki instance
+jspwiki.baseURL=http://www.rollerweblogger.org/wiki/
+
+# these are needed to run JSPWiki embedded inside Roller, no need to change them!
+jspwiki.pageProvider =org.roller.presentation.velocity.plugins.jspwiki.RollerPageProvider
+jspwiki.basicAttachmentProvider.storageDir = .
+jspwiki.fileSystemProvider.pageDir = .
+
+# these are just preferences, set them as you wish
+jspwiki.translatorReader.inlinePattern.1 = *.gif
+jspwiki.translatorReader.inlinePattern.2 = *.jpg
+jspwiki.translatorReader.inlinePattern.3 = *.png
+jspwiki.translatorReader.matchEnglishPlurals = true
+jspwiki.translatorReader.camelCaseLinks = true
+jspwiki.interWikiRef.JSPWiki = http://www.ecyrd.com/JSPWiki/Wiki.jsp?page=%s
+jspwiki.interWikiRef.Edit = Edit.jsp?page=%s
+jspwiki.interWikiRef.WikiWikiWeb = http://c2.com/cgi/wiki?%s
+jspwiki.interWikiRef.TWiki = http://twiki.org/cgi-bin/view/TWiki/%s
+jspwiki.interWikiRef.MeatballWiki = http://usemod.com/cgi-bin/mb.pl?%s
+jspwiki.interWikiRef.Wikipedia = http://www.wikipedia.com/wiki/%s
+jspwiki.interWikiRef.Google = http://www.google.com/search?q=%s
+
+
+# which of these are needed or useful?
+#jspwiki.applicationName = wiki
+#jspwiki.usePageCache = false
+#jspwiki.attachmentProvider = BasicAttachmentProvider
+#jspwiki.translatorReader.allowHTML = false
+#jspwiki.breakTitleWithSpaces = false
+#jspwiki.templateDir = default
+#jspwiki.translatorReader.useOutlinkImage = true
+#jspwiki.lockExpiryTime = 60
+#jspwiki.specialPage.FindPage = Search.jsp
+#jspwiki.specialPage.UserPreferences = UserPreferences.jsp
+#jspwiki.plugin.searchPath =
+
Added: incubator/roller/branches/roller_1.x/web/WEB-INF/roller-config.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/WEB-INF/roller-config.xml?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/WEB-INF/roller-config.xml (added)
+++ incubator/roller/branches/roller_1.x/web/WEB-INF/roller-config.xml Fri Oct 21 14:27:36 2005
@@ -0,0 +1,47 @@
+<!-- Initial values for the rollerconfig database table -->
+<RollerConfig>
+ <rssUsePort>false</rssUsePort>
+ <rssUseCache>true</rssUseCache>
+ <rssCacheTime>14400</rssCacheTime> <!-- 4 hours (in seconds) -->
+ <newUserAllowed>true</newUserAllowed>
+ <adminUsers>
+ <adminUsers></adminUsers>
+ </adminUsers>
+ <indexDir>${user.home}/roller-index</indexDir>
+ <newUserData>/templates</newUserData>
+ <newUserThemes>/themes</newUserThemes>
+ <editorPages>
+ <editorPages>editor-ekit.jsp</editorPages>
+ <editorPages>editor-text.jsp</editorPages>
+ <editorPages>editor-dhtml.jsp</editorPages>
+ <editorPages>editor-text-js.jsp</editorPages>
+ <editorPages>editor-wiki-js.jsp</editorPages>
+ <editorPages>editor-rte.jsp</editorPages>
+ </editorPages>
+ <enableAggregator>true</enableAggregator>
+ <uploadEnabled>true</uploadEnabled>
+ <uploadMaxDirMB>4.00</uploadMaxDirMB>
+ <uploadMaxFileMB>1.00</uploadMaxFileMB>
+ <!-- forbid and allow are mutually exclusive,
+ only set one of the two -->
+ <uploadAllow>
+ <uploadAllow>jpg</uploadAllow>
+ <uploadAllow>jpeg</uploadAllow>
+ <uploadAllow>gif</uploadAllow>
+ <uploadAllow>png</uploadAllow>
+ </uploadAllow>
+ <uploadForbid>
+ </uploadForbid>
+ <!-- the location of the directory where files
+ will be stored, may end with a slash -->
+ <uploadDir></uploadDir>
+ <!-- the path where the webserver will serve from,
+ should not end with a slash -->
+ <uploadPath>/resources</uploadPath>
+ <memDebug>false</memDebug>
+ <autoformatComments>true</autoformatComments>
+ <escapeCommentHtml>false</escapeCommentHtml>
+ <emailComments>false</emailComments>
+ <encryptPasswords>true</encryptPasswords>
+ <algorithm>SHA</algorithm>
+</RollerConfig>
Added: incubator/roller/branches/roller_1.x/web/WEB-INF/toolbox.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/WEB-INF/toolbox.xml?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/WEB-INF/toolbox.xml (added)
+++ incubator/roller/branches/roller_1.x/web/WEB-INF/toolbox.xml Fri Oct 21 14:27:36 2005
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!--
+ Copyright 2003-2004 The Apache Software Foundation.
+
+ Licensed 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.
+
+ $Id: toolbox.xml,v 1.1 2004/05/11 17:18:49 baudrate Exp $
+-->
+<toolbox>
+
+ <tool>
+ <key>math</key>
+ <scope>application</scope>
+ <class>org.apache.velocity.tools.generic.MathTool</class>
+ </tool>
+
+ <tool>
+ <key>link</key>
+ <class>org.apache.velocity.tools.struts.StrutsLinkTool</class>
+ </tool>
+
+ <!-- ordinarily the SecureLinkTool would simply replace the StrutsLinkTool
+ if SSL Ext. is in use - in that case the key would be 'link' but it's
+ 'slink' here to distinguish between the two. -->
+ <tool>
+ <key>slink</key>
+ <class>org.apache.velocity.tools.struts.SecureLinkTool</class>
+ </tool>
+
+ <tool>
+ <key>text</key>
+ <class>org.apache.velocity.tools.struts.MessageTool</class>
+ </tool>
+
+ <tool>
+ <key>errors</key>
+ <class>org.apache.velocity.tools.struts.ErrorsTool</class>
+ </tool>
+
+ <tool>
+ <key>messages</key>
+ <class>org.apache.velocity.tools.struts.ActionMessagesTool</class>
+ </tool>
+
+ <tool>
+ <key>form</key>
+ <class>org.apache.velocity.tools.struts.FormTool</class>
+ </tool>
+
+ <tool>
+ <key>tiles</key>
+ <class>org.apache.velocity.tools.struts.TilesTool</class>
+ </tool>
+
+ <tool>
+ <key>validator</key>
+ <class>org.apache.velocity.tools.struts.ValidatorTool</class>
+ </tool>
+
+</toolbox>
Added: incubator/roller/branches/roller_1.x/web/WEB-INF/velocity.properties
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/WEB-INF/velocity.properties?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/WEB-INF/velocity.properties (added)
+++ incubator/roller/branches/roller_1.x/web/WEB-INF/velocity.properties Fri Oct 21 14:27:36 2005
@@ -0,0 +1,55 @@
+# specify resource loaders to use
+resource.loader = webapp, theme, roller, class
+
+# theme resource loader
+theme.resource.loader.public.name=theme
+theme.resource.loader.description=Roller Theme Resource Loader
+theme.resource.loader.class=org.roller.presentation.velocity.ThemeResourceLoader
+theme.resource.loader.cache=false
+theme.resource.loader.modificationCheckInterval=2
+
+# for the loader we call 'roller', use the RollerResourceLoader
+roller.resource.loader.public.name=roller
+roller.resource.loader.description=Roller Main Resource Loader
+roller.resource.loader.class=org.roller.presentation.velocity.RollerResourceLoader
+roller.resource.loader.cache=false
+roller.resource.loader.modificationCheckInterval=2
+
+# for the loader we call 'class', use the ClasspathResourceLoader
+class.resource.loader.description = Velocity Classpath Resource Loader
+class.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
+class.resource.loader.cache=true
+class.resource.loader.modificationCheckInterval=60
+
+# for the loader we call 'webapp', use the WebappResourceLoader
+webapp.resource.loader.description = Roller Webapp Resource Loader
+webapp.resource.loader.class = org.roller.presentation.velocity.WebappResourceLoader
+webapp.resource.loader.cache=true
+webapp.resource.loader.modificationCheckInterval=60
+
+# log invalid template references?
+# set this to false to have a quieter velocity.log
+runtime.log.invalid.reference=false
+
+# tell Velocity to use Log4J
+runtime.log.logsystem.class=org.apache.velocity.runtime.log.SimpleLog4JLogSystem
+runtime.log.logsystem.log4j.category=org.apache.velocity
+
+# Override the default global library, set to blank to load no default
+velocimacro.library = roller.vm,bookmark.vm,comments.vm,navbar.vm,newsfeed.vm,referer.vm,rssmacros.vm,user.vm,weblog.vm,website.vm
+
+# Change to false for deployment environments.
+# Caching for the 'class' & 'webapp' ResourceLoaders must be false for this to work
+velocimacro.library.autoreload=true
+
+# Allow Velocimacros to be defined in regular templates
+velocimacro.permissions.allow.inline=true
+
+# I *think* this will allow users to override macros
+# for themselves, but not everyone...
+velocimacro.permissions.allow.inline.local.scope=true
+
+# set encoding/charset to UTF-8
+input.encoding=UTF-8
+output.encoding=UTF-8
+default.contentType=text/html; charset=utf-8
\ No newline at end of file
Added: incubator/roller/branches/roller_1.x/web/bookmarks/BookmarkForm.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/bookmarks/BookmarkForm.jsp?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/bookmarks/BookmarkForm.jsp (added)
+++ incubator/roller/branches/roller_1.x/web/bookmarks/BookmarkForm.jsp Fri Oct 21 14:27:36 2005
@@ -0,0 +1,82 @@
+<%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
+
+<h3>
+<img src='<c:url value="/images/Bookmark24.png"/>' alt="bookmark" align="absmiddle" />
+<c:if test="${state == 'add'}">
+ <fmt:message key="bookmarkForm.addBookmark" />
+</c:if>
+<c:if test="${state == 'edit'}">
+ <fmt:message key="bookmarkForm.editBookmark" />
+</c:if>
+<c:if test="${state == 'correct'}">
+ <fmt:message key="bookmarkForm.correctBookmark" />
+</c:if>
+</h3>
+
+<p>
+<b><fmt:message key="bookmarksForm.path" /></b>:
+<c:if test="${!empty parentFolder.parent.path}">
+ <c:out value="${parentFolder.parent.path}" />
+</c:if>
+<c:if test="${empty parentFolder.parent.path}">
+ /
+</c:if>
+</p>
+
+<html:form action="/editor/bookmarkSave" method="post" focus="name">
+
+ <html:hidden property="method" value="update"/></input>
+ <html:hidden property="id" /></input>
+
+ <input type="hidden" name="<%= RollerRequest.FOLDERID_KEY %>"
+ value="<%= request.getAttribute(RollerRequest.FOLDERID_KEY) %>" />
+
+ <table>
+
+ <tr>
+ <td><fmt:message key="bookmarkForm.name" /></td>
+ <td><html:text property="name" maxlength="255" size="70" /></input></td>
+ </tr>
+
+ <tr>
+ <td><fmt:message key="bookmarkForm.description" /></td>
+ <td><html:textarea property="description" rows="5" cols="50" /></td>
+ </tr>
+
+ <tr>
+ <td><fmt:message key="bookmarkForm.url" /></td>
+ <td><html:text property="url" maxlength="255" size="70" /></input></td>
+ </tr>
+
+ <tr>
+ <td><fmt:message key="bookmarkForm.rssUrl" /></td>
+ <td><html:text property="feedUrl" maxlength="255" size="70" /></input></td>
+ </tr>
+
+ <tr>
+ <td><fmt:message key="bookmarkForm.image" /></td>
+ <td><html:text property="image" maxlength="255" size="70" /></input></td>
+ </tr>
+
+ <tr>
+ <td><fmt:message key="bookmarkForm.priority" /></td>
+ <td><html:text property="priority" maxlength="255" size="5" /></input></td>
+ </tr>
+
+ <tr>
+ <td><fmt:message key="bookmarkForm.weight" /></td>
+ <td><html:text property="weight" maxlength="255" size="5" /></input></td>
+ </tr>
+
+ </table>
+
+ <p>
+ <input type="submit" value="<fmt:message key='bookmarkForm.save'/>" />
+ <input type="button" value="<fmt:message key='bookmarkForm.cancel' />"
+ onclick="window.location = 'bookmarks.do?method=selectFolder&folderid=<%=
+ request.getAttribute(RollerRequest.FOLDERID_KEY) %>'" />
+ </p>
+
+</html:form>
+
+<%@ include file="/theme/footer.jsp" %>
\ No newline at end of file
Added: incubator/roller/branches/roller_1.x/web/bookmarks/BookmarksForm.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/bookmarks/BookmarksForm.jsp?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/bookmarks/BookmarksForm.jsp (added)
+++ incubator/roller/branches/roller_1.x/web/bookmarks/BookmarksForm.jsp Fri Oct 21 14:27:36 2005
@@ -0,0 +1,223 @@
+<%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
+
+<%-- JavaScript for bookmarks table --%>
+<script type="text/javascript">
+<!--
+function setChecked(val)
+{
+ len = document.bookmarksForm.elements.length;
+ var i=0;
+ for( i=0 ; i<len ; i++)
+ {
+ document.bookmarksForm.elements[i].checked=val;
+ }
+}
+function onDelete()
+{
+ if ( confirm("Delete selected bookmarks?") )
+ {
+ document.bookmarksForm.method.value = "deleteSelected";
+ document.bookmarksForm.submit();
+ }
+ }
+function onMove()
+{
+ if ( confirm("Move selected bookmarks?") )
+ {
+ document.bookmarksForm.method.value = "moveSelected";
+ document.bookmarksForm.submit();
+ }
+}
+//-->
+</script>
+
+<h1>
+ <fmt:message key="bookmarksForm.folder" />:
+ <c:if test="${empty folder}">
+ <fmt:message key="bookmarksForm.root" />
+ </c:if>
+ <c:if test="${!(empty folder)}">
+ <c:out value="${folder.name}" />
+ </c:if>
+</h1>
+
+<%-- Folder path --%>
+
+<p>
+<b><fmt:message key="bookmarksForm.path" /></b>:
+
+<c:if test="${empty folderPath}">
+ /
+ <roller:link page="/editor/bookmarks.do">
+ <roller:linkparam id="method" value="selectFolder" />
+ <fmt:message key="bookmarksForm.root" />
+ </roller:link>
+</c:if>
+
+<c:if test="${!(empty folderPath)}">
+ <c:forEach var="folder" items="${folderPath}">
+ /
+ <roller:link page="/editor/bookmarks.do">
+ <roller:linkparam id="method" value="selectFolder" />
+ <roller:linkparam
+ id="<%= RollerRequest.FOLDERID_KEY %>"
+ name="folder" property="id" />
+ <c:out value="${folder.name}" />
+ </roller:link>
+ </c:forEach>
+ <br />
+</c:if>
+</p>
+
+<%-- Form is a table of folders followed by bookmarks, each with checkbox --%>
+
+<html:form action="/editor/bookmarks" method="post">
+<input type="hidden" name="method" />
+<html:hidden property="folderId" />
+
+<p>
+<%-- Add Bookmark link --%>
+<img src='<c:url value="/images/BookmarkNew16.png"/>' border="0"alt="icon" />
+<roller:link page="/editor/bookmarkEdit.do">
+ <roller:linkparam id="<%= RollerRequest.FOLDERID_KEY %>"
+ name="folder" property="id" />
+ <fmt:message key="bookmarksForm.addBookmark" />
+</roller:link>
+
+ |
+
+<%-- Add Folder link --%>
+<img src='<c:url value="/images/FolderNew16.png"/>' border="0"alt="icon" />
+<roller:link page="/editor/folderEdit.do">
+ <roller:linkparam id="<%= RollerRequest.PARENTID_KEY %>"
+ name="folder" property="id" />
+ <fmt:message key="bookmarksForm.addFolder" />
+</roller:link>
+</p>
+
+<p>
+<%-- Select-all button --%>
+<input type="button" value="<fmt:message key='bookmarksForm.checkAll' />"
+ onclick="setChecked(1)" /></input>
+
+<%-- Select-none button --%>
+<input type="button" value="<fmt:message key='bookmarksForm.checkNone' />"
+ onclick="setChecked(0)" /></input>
+
+<%-- Delete-selected button --%>
+<input type="button" value="<fmt:message key='bookmarksForm.delete' />"
+ onclick="onDelete()"/></input>
+</td>
+</p>
+
+<table class="rollertable">
+
+ <tr class="rHeaderTr">
+ <th class="rollertable" width="5%"> </th>
+ <th class="rollertable" width="5%"> </th>
+ <th class="rollertable" width="30%"><fmt:message key="bookmarksForm.name" /></th>
+ <th class="rollertable" width="50%"><fmt:message key="bookmarksForm.description" /></th>
+ <th class="rollertable" width="5%"><fmt:message key="bookmarksForm.edit" /></th>
+ <th class="rollertable" width="5%"><fmt:message key="bookmarksForm.visitLink" /></th>
+ </tr>
+
+ <%-- Folders --%>
+ <c:forEach var="folder" items="${folders}" >
+ <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">
+
+ <td class="rollertable">
+ <html:multibox property="selectedFolders">
+ <c:out value="${folder.id}" />
+ </html:multibox>
+ </td>
+
+
+ <td class="rollertable" align="center"><img src='<c:url value="/images/Folder16.png"/>' alt="icon" /></td>
+
+ <td class="rollertable">
+ <roller:link page="/editor/bookmarks.do">
+ <roller:linkparam id="method" value="selectFolder" />
+ <roller:linkparam
+ id="<%= RollerRequest.FOLDERID_KEY %>"
+ name="folder" property="id" />
+ <str:truncateNicely lower="15" upper="20" ><c:out value="${folder.name}" /></str:truncateNicely>
+ </roller:link>
+ </td>
+
+ <td class="rollertable">
+ <str:truncateNicely lower="30" upper="35" ><c:out value="${folder.description}" /></str:truncateNicely>
+ </td>
+
+ <td class="rollertable" align="center">
+ <roller:link page="/editor/folderEdit.do">
+ <roller:linkparam
+ id="<%= RollerRequest.FOLDERID_KEY %>"
+ name="folder" property="id" />
+ <img src='<c:url value="/images/Edit16.png"/>' border="0" alt="icon" />
+ </roller:link>
+ </td>
+
+ <td class="rollertable"> </td>
+
+ </roller:row>
+ </c:forEach>
+
+ <%-- Bookmarks --%>
+ <c:forEach var="bookmark" items="${bookmarks}" >
+ <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">
+
+ <td class="rollertable">
+ <html:multibox property="selectedBookmarks">
+ <c:out value="${bookmark.id}" />
+ </html:multibox>
+ </td>
+
+ <td class="rollertable" align="center"><img src='<c:url value="/images/Bookmark16.png"/>' alt="icon" /></td>
+
+ <td class="rollertable">
+ <str:truncateNicely lower="15" upper="20" ><c:out value="${bookmark.name}" /></str:truncateNicely>
+ </td>
+
+ <td class="rollertable">
+ <str:truncateNicely lower="30" upper="35" ><c:out value="${bookmark.description}" /></str:truncateNicely>
+ </td>
+
+ <td class="rollertable" align="center">
+ <roller:link page="/editor/bookmarkEdit.do">
+ <roller:linkparam
+ id="<%= RollerRequest.BOOKMARKID_KEY %>"
+ name="bookmark" property="id" />
+ <img src='<c:url value="/images/Edit16.png"/>' border="0" alt="icon"
+ title="<fmt:message key='bookmarksForm.edit.tip' />" />
+ </roller:link>
+ </td>
+
+ <td class="rollertable" align="center">
+ <c:if test="${!empty bookmark.url}" >
+ <a href="<c:out value='${bookmark.url}'/>">
+ <img src='<c:url value="/images/WebVisit16.png"/>' border="0" alt="icon"
+ title="<fmt:message key='bookmarksForm.visitLink.tip' />" />
+ </a>
+ </c:if>
+ </td>
+
+ </roller:row>
+ </c:forEach>
+
+</table>
+
+<p>
+<%-- Move-selected button --%>
+<input type="button" value="<fmt:message key='bookmarksForm.move' />"
+ onclick="onMove()"/></input>
+
+<%-- Move-to combo-box --%>
+<html:select property="moveToFolderId" size="1">
+ <html:options collection="allFolders"
+ property="id" labelProperty="path"/>
+</html:select>
+</p>
+
+</html:form>
+
+<%@ include file="/theme/footer.jsp" %>
\ No newline at end of file
Added: incubator/roller/branches/roller_1.x/web/bookmarks/FolderForm.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/bookmarks/FolderForm.jsp?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/bookmarks/FolderForm.jsp (added)
+++ incubator/roller/branches/roller_1.x/web/bookmarks/FolderForm.jsp Fri Oct 21 14:27:36 2005
@@ -0,0 +1,56 @@
+<%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
+
+<h3>
+<img src='<c:url value="/images/Folder24.png" />' alt="folder" align="absmiddle" />
+<c:if test="${state == 'add'}">
+ <fmt:message key="folderForm.addFolder" /></h3>
+</c:if>
+<c:if test="${state == 'edit'}">
+ <fmt:message key="folderForm.editFolder" />
+</c:if>
+<c:if test="${state == 'correct'}">
+ <fmt:message key="folderForm.correctFolder" />
+</c:if>
+</h3>
+
+<p>
+<b><fmt:message key="bookmarksForm.path" /></b>:
+<c:if test="${!empty parentFolder.parent.path}">
+ <c:out value="${parentFolder.parent.path}" />
+</c:if>
+<c:if test="${empty parentFolder.parent.path}">
+ /
+</c:if>
+</p>
+
+<html:form action="/editor/folderSave" method="post" focus="name">
+
+ <html:hidden property="method" name="method" value="update"/>
+ <html:hidden property="id" />
+
+ <input type="hidden" name="<%= RollerRequest.PARENTID_KEY %>"
+ value="<%= request.getAttribute(RollerRequest.PARENTID_KEY) %>" />
+
+ <table>
+
+ <tr>
+ <td><fmt:message key="folderForm.name" /></td>
+ <td><html:text property="name" size="70" maxlength="255" /></td>
+ </tr>
+
+ <tr>
+ <td><fmt:message key="folderForm.description" /></td>
+ <td><html:textarea property="description" rows="5" cols="50" /></td>
+ </tr>
+ </table>
+
+ <p>
+ <input type="submit" value="<fmt:message key='folderForm.save' />" />
+ <input type="button" value="<fmt:message key='folderForm.cancel' />"
+ onclick="window.location = 'bookmarks.do?method=selectFolder&folderid=<%=
+ request.getAttribute(RollerRequest.PARENTID_KEY) %>'" />
+ </p>
+
+</html:form>
+
+<%@ include file="/theme/footer.jsp" %>
\ No newline at end of file
Added: incubator/roller/branches/roller_1.x/web/bookmarks/import.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/bookmarks/import.jsp?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/bookmarks/import.jsp (added)
+++ incubator/roller/branches/roller_1.x/web/bookmarks/import.jsp Fri Oct 21 14:27:36 2005
@@ -0,0 +1,23 @@
+<%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
+
+<h1><fmt:message key="bookmarksImport.title" /></h1>
+<p><fmt:message key="bookmarksImport.prompt" /></p>
+
+<html:form action="/editor/importBookmarks" method="post" enctype="multipart/form-data">
+ <html:file property="bookmarksFile" />
+ <br />
+ <br />
+ <html:submit/></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/branches/roller_1.x/web/denied.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/denied.jsp?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/denied.jsp (added)
+++ incubator/roller/branches/roller_1.x/web/denied.jsp Fri Oct 21 14:27:36 2005
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<%@ page import="org.roller.model.Roller" %>
+<%@ page import="org.roller.pojos.UserData" %>
+<%@ page import="org.roller.presentation.RollerRequest" %>
+<%@ include file="/taglibs.jsp" %>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Roller :: Editor</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <script type="text/javascript"
+ src="<%= request.getContextPath() %>/theme/scripts/roller.js"></script>
+ <link rel="stylesheet" type="text/css" title="The Original"
+ href="<%= request.getContextPath() %>/theme/roller.css" />
+ <link rel="stylesheet" type="text/css" title="The Original"
+ href="<%= request.getContextPath() %>/theme/layout.css" />
+ </head>
+<body>
+<div id="content">
+
+<% try { %>
+ <roller:NavigationBar/>
+<% }
+catch (Exception e)
+{
+ System.err.println("ERROR: while displaying error page error page");
+ e.printStackTrace();
+} %>
+
+<%@ page import="java.io.*,org.roller.util.Utilities" isErrorPage="true" %>
+
+<h2><fmt:message key="error.permissionDenied.title" /></h2>
+<fmt:message key="error.permissionDenied.prompt" />
+<ul>
+<li><fmt:message key="error.permissionDenied.reason1" /></li>
+<li><fmt:message key="error.permissionDenied.reason2" /></li>
+<li><fmt:message key="error.permissionDenied.reason3" /></li>
+</ul>
+
+<%@ include file="/theme/footer.jsp" %>
+
Added: incubator/roller/branches/roller_1.x/web/dstest.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/dstest.jsp?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/dstest.jsp (added)
+++ incubator/roller/branches/roller_1.x/web/dstest.jsp Fri Oct 21 14:27:36 2005
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<%-- simple test page to test your Roller datasource setup --%>
+<%@ page import="javax.naming.InitialContext" %>
+<%@ page import="javax.sql.DataSource" %>
+<%@ page import="java.sql.Connection" %>
+<html>
+<head>
+<title>Roller DataSource test</title>
+</head>
+<body>
+<p>
+<%
+String msg = null;
+Connection con = null;
+try
+{
+ InitialContext ic = new InitialContext();
+ DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/rollerdb");
+ con = ds.getConnection();
+ msg = "SUCCESS: Got datasource and connection, class is "+ds.getClass().getName();
+}
+catch (Exception e)
+{
+ msg = "FAILURE: exception thrown "+e.getClass().getName();
+ e.printStackTrace( new java.io.PrintWriter(out) );
+}
+finally
+{
+ if (con != null) con.close();
+}
+
+%>
+<%= msg %>
+</p>
+</body>
+</html>
Added: incubator/roller/branches/roller_1.x/web/editor/changelog.txt
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/changelog.txt?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/editor/changelog.txt (added)
+++ incubator/roller/branches/roller_1.x/web/editor/changelog.txt Fri Oct 21 14:27:36 2005
@@ -0,0 +1,44 @@
+Cross-Browser Rich Text Editor change log
+
+11/12/2004 - Fixed palette position when rte is embedded within multiple divs.
+11/12/2004 - Fixed button events for non-IE browsers (now uses CSS)
+11/9/2004 - Fixed bug when using SSL saying page has unsecured items.
+11/9/2004 - Changed back default behaviour of IE to insert <p> tags when hitting return. Previous fix broke list items and indenting functionality in IE
+11/2/2004 - Changed default behaviour of IE to insert <br> tags instead of <p> tags upon hitting return - thanks TotalJSNoob and archv1le!
+7/14/2004 - Changed rte.css to maintain td styles under parent objects
+5/18/2004 - Added CSS file for RTE button styles. css is no longer printed every time a new rte is created.
+5/18/2004 - Made color palette smaller
+5/18/2004 - Fixed placement of color pallette for rtes embedded within divs - thanks Ernst!
+5/18/2004 - If a css is specified, the body tag is no longer overruled - thanks Ernst!
+5/18/2004 - Fixed headings dropdown, replacing < and > characters
+4/13/2004 - Fixed bug with standard textarea and updateRTE function
+4/12/2004 - Fixed bug with IE where toggle source would err if only content was horizontal rules
+4/12/2004 - Fixed bug where nothing would be returned if the only content was horizontal rules and/or images
+4/9/2004 - Fixed bug for Konqueror browser
+4/9/2004 - Added multi.htm to demonstrate using multiple RTEs on one page.
+4/9/2004 - Fixed bug in IE where you could set style on document objects not in iframe.
+4/9/2004 - Updated buttons look and feel - thanks Ernst!
+3/31/2004 - Fixed bug in stripHTML function - thanks valli!
+3/19/2004 - Fixed bug with Gecko browsers where <br> is returned when empty content submitted.
+2/23/2004 - Fixed bug with Mac Safari 1.2
+1/16/2004 - Added Justify Full button
+1/9/2004 - Added updateRTEs function to update all rtes on page
+1/9/2004 - Fixed bug with updateRTE in readOnly mode
+1/8/2004 - Added parameter to writeRichText function, readOnly
+1/8/2004 - Fixed bug with Mozilla when adding blank url links
+1/8/2004 - Fixed init bug for Konqueror and Mac IE browsers. Added parameters to init function for images path, includes path, and css file
+1/6/2004 - Added compressed richtext_compressed.js file to zip. File size is 37% smaller
+1/5/2004 - Removed reference to style.css
+1/5/2004 - Fixed demo form submit code
+1/2/2004 - Fixed crashing with Mozilla 1.3
+1/2/2004 - Fixed bug with Mozilla 1.3
+1/2/2004 - Fixed problem with html view on submit
+12/26/2003 - Fixed color palette dropdowns for multiple RTEs. Improved enableDesignMode function.
+12/23/2003 - Fixed several bugs with multiple RTEs on one page.
+12/22/2003 - Added support for IE5.
+12/22/2003 - Modified code to remove all timeout settings. Fixed IE stylesheet support. Blank.htm is no longer needed.
+12/17/2003 - Changed code for IE enableDesignMode function to load quicker and to eliminate use of timeout.
+12/8/2003 - Fixed bug with IE5.
+12/8/2003 - Added in keyboard shortcut support for Mozilla. Code contributed by Anti Veeranna
+12/5/2003 - Removed dependence on browserdetect.js and removed js link. Also updated initRTE function to speed up load.
+12/5/2003 - Created changelog.txt to keep track of version history from now on.
\ No newline at end of file
Added: incubator/roller/branches/roller_1.x/web/editor/ekitappletspell.jar
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/ekitappletspell.jar?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/ekitappletspell.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/bgcolor.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/bgcolor.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/bgcolor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/blackdot.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/blackdot.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/blackdot.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/bold.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/bold.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/bold.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/centre.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/centre.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/centre.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/copy.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/copy.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/copy.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/cut.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/cut.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/cut.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/email.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/email.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/email.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/hr.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/hr.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/hr.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/hyperlink.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/hyperlink.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/hyperlink.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/image.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/image.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/image.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/indent.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/indent.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/indent.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/italic.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/italic.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/italic.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/justifyfull.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/justifyfull.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/justifyfull.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/left_just.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/left_just.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/left_just.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/list.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/list.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/list.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/numbered_list.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/numbered_list.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/numbered_list.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/outdent.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/outdent.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/outdent.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/paste.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/paste.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/paste.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/redo.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/redo.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/redo.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/right_just.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/right_just.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/right_just.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/smiley.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/smiley.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/smiley.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/spellcheck.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/spellcheck.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/spellcheck.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/textcolor.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/textcolor.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/textcolor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/underline.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/underline.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/underline.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/images/undo.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/images/undo.gif?rev=327589&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_1.x/web/editor/images/undo.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_1.x/web/editor/multi.htm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/multi.htm?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/editor/multi.htm (added)
+++ incubator/roller/branches/roller_1.x/web/editor/multi.htm Fri Oct 21 14:27:36 2005
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+<head>
+ <title>Cross-Browser Rich Text Editor</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <meta name="PageURL" content="http://www.kevinroth.com/rte/demo.htm" />
+ <meta name="PageTitle" content="Cross-Browser Rich Text Editor" />
+ <!-- To decrease bandwidth, change the src to richtext_compressed.js //-->
+ <script language="JavaScript" type="text/javascript" src="richtext.js"></script>
+</head>
+<body>
+
+<h2>Cross-Browser Rich Text Editor</h2>
+<p><a href="http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=3508&lngWId=2" target="_blank"><img src="/images/PscContestWinner.jpg" height="88" width="409" alt="PscContestWinner" border="0"></a></p>
+<p>The cross-browser rich-text editor implements the <a href="http://www.mozilla.org/editor/midas-spec.html" target="_blank">Mozilla Rich Text Editing API</a> included with Mozilla 1.3+. There is <b>NO LICENSE</b>, so just take the code and use it for any purpose. This code is 100% free. Enjoy!</p>
+<p>For frequently asked question and support, please visit <a href="http://www.kevinroth.com/forums/index.php?c=2">http://www.kevinroth.com/forums/index.php?c=2</a></p>
+<p><b>Requires:</b> IE5+/<a href="http://www.mozilla.org/">Mozilla</a> 1.3+/<a href="http://www.mozilla.org/products/firefox/" target="_blank">Mozilla Firebird/Firefox</a> 0.6.1+ for all rich-text features to function properly. If browser does not support rich-text, it should display a standard textarea box.</p>
+<p><b>Source:</b> <a href="rte.zip">rte.zip</a>, <a href="rte.tar.gz">rte.tar.gz</a><br>
+Included in the zip are <a href="demo.htm">HTML</a>, <a href="demo.asp">ASP</a>, and <a href="demo.php">PHP</a> demos. Also, here is an <a href="multi.htm">html demo</a> showing multiple RTEs on one page.</p>
+<p><b>Change Log:</b> <a href="changelog.txt">changelog.txt</a></p>
+
+<p><b>If you feel that the work I've done has value to you,</b> I would greatly appreciate a paypal donation (click button below). Another way you can help me out is to <a href="http://www.FreeFlatScreens.com/default.aspx?referer=11055453" target="_blank">sign up for a free flat screen</a>, to help me get mine. Again, I am very grateful for any and all contributions.</p>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_xclick">
+<input type="hidden" name="business" value="kevin@kevinroth.com">
+<input type="hidden" name="no_note" value="1">
+<input type="hidden" name="currency_code" value="USD">
+<input type="hidden" name="tax" value="0">
+<input type="hidden" name="lc" value="US">
+<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
+</form>
+
+<form name="RTEDemo" action="demo.htm" method="post" onsubmit="return submitForm();">
+
+<script language="JavaScript" type="text/javascript">
+<!--
+function submitForm() {
+ //make sure hidden and iframe values are in sync before submitting form
+ //to sync only 1 rte, use updateRTE(rte)
+ //to sync all rtes, use updateRTEs
+ //updateRTE('rte1');
+ updateRTEs();
+ alert("rte1 = " + document.RTEDemo.rte1.value);
+ alert("rte2 = " + document.RTEDemo.rte2.value);
+ alert("rte3 = " + document.RTEDemo.rte3.value);
+
+ //change the following line to true to submit form
+ return false;
+}
+
+//Usage: initRTE(imagesPath, includesPath, cssFile)
+initRTE("images/", "", "");
+//-->
+</script>
+<noscript><p><b>Javascript must be enabled to use this form.</b></p></noscript>
+
+<script language="JavaScript" type="text/javascript">
+<!--
+//Usage: writeRichText(fieldname, html, width, height, buttons, readOnly)
+writeRichText('rte1', 'here's the "<em>preloaded</em> <b>content</b>"', 520, 200, true, false);
+
+document.writeln('<br><br>');
+writeRichText('rte2', 'preloaded <b>text</b>', 560, 100, true, false);
+
+document.writeln('<br><br>');
+writeRichText('rte3', 'preloaded <b>text</b>', 450, 100, true, true);
+//-->
+</script>
+
+<p>Click submit to show the value of the text box.</p>
+<p><input type="submit" name="submit" value="Submit"></p>
+</form>
+
+</body>
+</html>
\ No newline at end of file
Added: incubator/roller/branches/roller_1.x/web/editor/palette.htm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/palette.htm?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/editor/palette.htm (added)
+++ incubator/roller/branches/roller_1.x/web/editor/palette.htm Fri Oct 21 14:27:36 2005
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+<head>
+ <title>Text Color</title>
+ <script language="JavaScript" type="text/javascript">
+ <!--
+ function selectColor(color) {
+ self.parent.setColor(color);
+ }
+
+ function InitColorPalette() {
+ if (document.getElementsByTagName)
+ var x = document.getElementsByTagName('TD');
+ else if (document.all)
+ var x = document.all.tags('TD');
+ for (var i=0;i<x.length;i++) {
+ x[i].onmouseover = over;
+ x[i].onmouseout = out;
+ x[i].onclick = click;
+ }
+ }
+
+ function over() {
+ this.style.border='1px dotted white';
+ }
+
+ function out() {
+ this.style.border='1px solid gray';
+ }
+
+ function click() {
+ selectColor(this.id);
+ }
+ //-->
+ </script>
+</head>
+<body bgcolor="white" onLoad="InitColorPalette()" leftmargin="0" rightmargin="0" marginwidth="0" marginheight="0" topmargin="0" bottommargin="0">
+<table width="150" height="100" cellpadding="0" cellspacing="1" border="1" align="center">
+ <tr>
+ <td id="#FFFFFF" bgcolor="#FFFFFF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFCCCC" bgcolor="#FFCCCC" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFCC99" bgcolor="#FFCC99" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFFF99" bgcolor="#FFFF99" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFFFCC" bgcolor="#FFFFCC" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#99FF99" bgcolor="#99FF99" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#99FFFF" bgcolor="#99FFFF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#CCFFFF" bgcolor="#CCFFFF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#CCCCFF" bgcolor="#CCCCFF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFCCFF" bgcolor="#FFCCFF" width="10" height="10"><img width="1" height="1"></td>
+ </tr>
+ <tr>
+ <td id="#CCCCCC" bgcolor="#CCCCCC" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FF6666" bgcolor="#FF6666" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FF9966" bgcolor="#FF9966" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFFF66" bgcolor="#FFFF66" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFFF33" bgcolor="#FFFF33" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#66FF99" bgcolor="#66FF99" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#33FFFF" bgcolor="#33FFFF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#66FFFF" bgcolor="#66FFFF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#9999FF" bgcolor="#9999FF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FF99FF" bgcolor="#FF99FF" width="10" height="10"><img width="1" height="1"></td>
+ </tr>
+ <tr>
+ <td id="#C0C0C0" bgcolor="#C0C0C0" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FF0000" bgcolor="#FF0000" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FF9900" bgcolor="#FF9900" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFCC66" bgcolor="#FFCC66" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFFF00" bgcolor="#FFFF00" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#33FF33" bgcolor="#33FF33" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#66CCCC" bgcolor="#66CCCC" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#33CCFF" bgcolor="#33CCFF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#6666CC" bgcolor="#6666CC" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#CC66CC" bgcolor="#CC66CC" width="10" height="10"><img width="1" height="1"></td>
+ </tr>
+ <tr>
+ <td id="#999999" bgcolor="#999999" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#CC0000" bgcolor="#CC0000" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FF6600" bgcolor="#FF6600" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFCC33" bgcolor="#FFCC33" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#FFCC00" bgcolor="#FFCC00" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#33CC00" bgcolor="#33CC00" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#00CCCC" bgcolor="#00CCCC" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#3366FF" bgcolor="#3366FF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#6633FF" bgcolor="#6633FF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#CC33CC" bgcolor="#CC33CC" width="10" height="10"><img width="1" height="1"></td>
+ </tr>
+ <tr>
+ <td id="#666666" bgcolor="#666666" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#990000" bgcolor="#990000" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#CC6600" bgcolor="#CC6600" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#CC9933" bgcolor="#CC9933" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#999900" bgcolor="#999900" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#009900" bgcolor="#009900" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#339999" bgcolor="#339999" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#3333FF" bgcolor="#3333FF" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#6600CC" bgcolor="#6600CC" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#993399" bgcolor="#993399" width="10" height="10"><img width="1" height="1"></td>
+ </tr>
+ <tr>
+ <td id="#333333" bgcolor="#333333" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#660000" bgcolor="#660000" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#993300" bgcolor="#993300" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#996633" bgcolor="#996633" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#666600" bgcolor="#666600" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#006600" bgcolor="#006600" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#336666" bgcolor="#336666" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#000099" bgcolor="#000099" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#333399" bgcolor="#333399" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#663366" bgcolor="#663366" width="10" height="10"><img width="1" height="1"></td>
+ </tr>
+ <tr>
+ <td id="#000000" bgcolor="#000000" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#330000" bgcolor="#330000" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#663300" bgcolor="#663300" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#663333" bgcolor="#663333" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#333300" bgcolor="#333300" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#003300" bgcolor="#003300" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#003333" bgcolor="#003333" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#000066" bgcolor="#000066" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#330099" bgcolor="#330099" width="10" height="10"><img width="1" height="1"></td>
+ <td id="#330033" bgcolor="#330033" width="10" height="10"><img width="1" height="1"></td>
+ </tr>
+</table>
+</body>
+</html>
Added: incubator/roller/branches/roller_1.x/web/editor/richtext.js
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_1.x/web/editor/richtext.js?rev=327589&view=auto
==============================================================================
--- incubator/roller/branches/roller_1.x/web/editor/richtext.js (added)
+++ incubator/roller/branches/roller_1.x/web/editor/richtext.js Fri Oct 21 14:27:36 2005
@@ -0,0 +1,594 @@
+// Cross-Browser Rich Text Editor
+// http://www.kevinroth.com/rte/demo.htm
+// Written by Kevin Roth (kevin@NOSPAMkevinroth.com - remove NOSPAM)
+// Visit the support forums at http://www.kevinroth.com/forums/index.php?c=2
+
+//init variables
+var isRichText = false;
+var rng;
+var currentRTE;
+var allRTEs = "";
+
+var isIE;
+var isGecko;
+var isSafari;
+var isKonqueror;
+
+var imagesPath;
+var includesPath;
+var cssFile;
+
+
+function initRTE(imgPath, incPath, css) {
+ //set browser vars
+ var ua = navigator.userAgent.toLowerCase();
+ isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1));
+ isGecko = (ua.indexOf("gecko") != -1);
+ isSafari = (ua.indexOf("safari") != -1);
+ isKonqueror = (ua.indexOf("konqueror") != -1);
+
+ //check to see if designMode mode is available
+ if (document.getElementById && document.designMode && !isSafari && !isKonqueror) {
+ isRichText = true;
+ }
+ if (isIE) {
+ document.onmouseover = raiseButton;
+ document.onmouseout = normalButton;
+ document.onmousedown = lowerButton;
+ document.onmouseup = raiseButton;
+ }
+
+ //set paths vars
+ imagesPath = imgPath;
+ includesPath = incPath;
+ cssFile = css;
+
+ if (isRichText) document.writeln('<style type="text/css">@import "' + includesPath + 'rte.css";</style>');
+
+ //for testing standard textarea, uncomment the following line
+ //isRichText = false;
+}
+
+function writeRichText(rte, html, width, height, buttons, readOnly) {
+ if (isRichText) {
+ if (allRTEs.length > 0) allRTEs += ";";
+ allRTEs += rte;
+ writeRTE(rte, html, width, height, buttons, readOnly);
+ } else {
+ writeDefault(rte, html, width, height, buttons, readOnly);
+ }
+}
+
+function writeDefault(rte, html, width, height, buttons, readOnly) {
+ if (!readOnly) {
+ document.writeln('<textarea name="' + rte + '" id="' + rte + '" style="width: ' + width + 'px; height: ' + height + 'px;">' + html + '</textarea>');
+ } else {
+ document.writeln('<textarea name="' + rte + '" id="' + rte + '" style="width: ' + width + 'px; height: ' + height + 'px;" readonly>' + html + '</textarea>');
+ }
+}
+
+function raiseButton(e) {
+ //IE-Only Function
+ var el = window.event.srcElement;
+
+ className = el.className;
+ if (className == 'rteImage' || className == 'rteImageLowered') {
+ el.className = 'rteImageRaised';
+ }
+}
+
+function normalButton(e) {
+ //IE-Only Function
+ var el = window.event.srcElement;
+
+ className = el.className;
+ if (className == 'rteImageRaised' || className == 'rteImageLowered') {
+ el.className = 'rteImage';
+ }
+}
+
+function lowerButton(e) {
+ //IE-Only Function
+ var el = window.event.srcElement;
+
+ className = el.className;
+ if (className == 'rteImage' || className == 'rteImageRaised') {
+ el.className = 'rteImageLowered';
+ }
+}
+
+function writeRTE(rte, html, width, height, buttons, readOnly) {
+ if (readOnly) buttons = false;
+
+ //adjust minimum table widths
+ if (isIE) {
+ if (buttons && (width < 600)) width = 600;
+ var tablewidth = width;
+ } else {
+ if (buttons && (width < 500)) width = 500;
+ var tablewidth = width + 4;
+ }
+
+ document.writeln('<div class="rteDiv">');
+ if (buttons == true) {
+ document.writeln('<table class="rteBack" cellpadding=2 cellspacing=0 id="Buttons1_' + rte + '" width="' + tablewidth + '">');
+ document.writeln(' <tr>');
+ document.writeln(' <td>');
+ document.writeln(' <select id="formatblock_' + rte + '" onchange="Select(\'' + rte + '\', this.id);">');
+ document.writeln(' <option value="">[Style]</option>');
+ document.writeln(' <option value="<p>">Paragraph</option>');
+ document.writeln(' <option value="<h1>">Heading 1 <h1></option>');
+ document.writeln(' <option value="<h2>">Heading 2 <h2></option>');
+ document.writeln(' <option value="<h3>">Heading 3 <h3></option>');
+ document.writeln(' <option value="<h4>">Heading 4 <h4></option>');
+ document.writeln(' <option value="<h5>">Heading 5 <h5></option>');
+ document.writeln(' <option value="<h6>">Heading 6 <h6></option>');
+ document.writeln(' <option value="<address>">Address <ADDR></option>');
+ document.writeln(' <option value="<pre>">Formatted <pre></option>');
+ document.writeln(' </select>');
+ document.writeln(' </td>');
+ document.writeln(' <td>');
+ document.writeln(' <select id="fontname_' + rte + '" onchange="Select(\'' + rte + '\', this.id)">');
+ document.writeln(' <option value="Font" selected>[Font]</option>');
+ document.writeln(' <option value="Arial, Helvetica, sans-serif">Arial</option>');
+ document.writeln(' <option value="Courier New, Courier, mono">Courier New</option>');
+ document.writeln(' <option value="Times New Roman, Times, serif">Times New Roman</option>');
+ document.writeln(' <option value="Verdana, Arial, Helvetica, sans-serif">Verdana</option>');
+ document.writeln(' </select>');
+ document.writeln(' </td>');
+ document.writeln(' <td>');
+ document.writeln(' <select unselectable="on" id="fontsize_' + rte + '" onchange="Select(\'' + rte + '\', this.id);">');
+ document.writeln(' <option value="Size">[Size]</option>');
+ document.writeln(' <option value="1">1</option>');
+ document.writeln(' <option value="2">2</option>');
+ document.writeln(' <option value="3">3</option>');
+ document.writeln(' <option value="4">4</option>');
+ document.writeln(' <option value="5">5</option>');
+ document.writeln(' <option value="6">6</option>');
+ document.writeln(' <option value="7">7</option>');
+ document.writeln(' </select>');
+ document.writeln(' </td>');
+ document.writeln(' <td width="100%">');
+ document.writeln(' </td>');
+ document.writeln(' </tr>');
+ document.writeln('</table>');
+ document.writeln('<table class="rteBack" cellpadding="0" cellspacing="0" id="Buttons2_' + rte + '" width="' + tablewidth + '">');
+ document.writeln(' <tr>');
+ document.writeln(' <td><img id="bold" class="rteImage" src="' + imagesPath + 'bold.gif" width="25" height="24" alt="Bold" title="Bold" onClick="FormatText(\'' + rte + '\', \'bold\', \'\')"></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'italic.gif" width="25" height="24" alt="Italic" title="Italic" onClick="FormatText(\'' + rte + '\', \'italic\', \'\')"></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'underline.gif" width="25" height="24" alt="Underline" title="Underline" onClick="FormatText(\'' + rte + '\', \'underline\', \'\')"></td>');
+ document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'left_just.gif" width="25" height="24" alt="Align Left" title="Align Left" onClick="FormatText(\'' + rte + '\', \'justifyleft\', \'\')"></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'centre.gif" width="25" height="24" alt="Center" title="Center" onClick="FormatText(\'' + rte + '\', \'justifycenter\', \'\')"></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'right_just.gif" width="25" height="24" alt="Align Right" title="Align Right" onClick="FormatText(\'' + rte + '\', \'justifyright\', \'\')"></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'justifyfull.gif" width="25" height="24" alt="Justify Full" title="Justify Full" onclick="FormatText(\'' + rte + '\', \'justifyfull\', \'\')"></td>');
+ document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'hr.gif" width="25" height="24" alt="Horizontal Rule" title="Horizontal Rule" onClick="FormatText(\'' + rte + '\', \'inserthorizontalrule\', \'\')"></td>');
+ document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'numbered_list.gif" width="25" height="24" alt="Ordered List" title="Ordered List" onClick="FormatText(\'' + rte + '\', \'insertorderedlist\', \'\')"></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'list.gif" width="25" height="24" alt="Unordered List" title="Unordered List" onClick="FormatText(\'' + rte + '\', \'insertunorderedlist\', \'\')"></td>');
+ document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'outdent.gif" width="25" height="24" alt="Outdent" title="Outdent" onClick="FormatText(\'' + rte + '\', \'outdent\', \'\')"></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'indent.gif" width="25" height="24" alt="Indent" title="Indent" onClick="FormatText(\'' + rte + '\', \'indent\', \'\')"></td>');
+ document.writeln(' <td><div id="forecolor_' + rte + '"><img class="rteImage" src="' + imagesPath + 'textcolor.gif" width="25" height="24" alt="Text Color" title="Text Color" onClick="FormatText(\'' + rte + '\', \'forecolor\', \'\')"></div></td>');
+ document.writeln(' <td><div id="hilitecolor_' + rte + '"><img class="rteImage" src="' + imagesPath + 'bgcolor.gif" width="25" height="24" alt="Background Color" title="Background Color" onClick="FormatText(\'' + rte + '\', \'hilitecolor\', \'\')"></div></td>');
+ document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'hyperlink.gif" width="25" height="24" alt="Insert Link" title="Insert Link" onClick="FormatText(\'' + rte + '\', \'createlink\')"></td>');
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'image.gif" width="25" height="24" alt="Add Image" title="Add Image" onClick="AddImage(\'' + rte + '\')"></td>');
+ if (isIE) {
+ document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'spellcheck.gif" width="25" height="24" alt="Spell Check" title="Spell Check" onClick="checkspell()"></td>');
+ }
+// document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
+// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'cut.gif" width="25" height="24" alt="Cut" title="Cut" onClick="FormatText(\'' + rte + '\', \'cut\')"></td>');
+// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'copy.gif" width="25" height="24" alt="Copy" title="Copy" onClick="FormatText(\'' + rte + '\', \'copy\')"></td>');
+// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'paste.gif" width="25" height="24" alt="Paste" title="Paste" onClick="FormatText(\'' + rte + '\', \'paste\')"></td>');
+// document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
+// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'undo.gif" width="25" height="24" alt="Undo" title="Undo" onClick="FormatText(\'' + rte + '\', \'undo\')"></td>');
+// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'redo.gif" width="25" height="24" alt="Redo" title="Redo" onClick="FormatText(\'' + rte + '\', \'redo\')"></td>');
+ document.writeln(' <td width="100%"></td>');
+ document.writeln(' </tr>');
+ document.writeln('</table>');
+ }
+ document.writeln('<iframe id="' + rte + '" name="' + rte + '" width="' + width + 'px" height="' + height + 'px" src="' + includesPath + 'blank.htm"></iframe>');
+ if (!readOnly) document.writeln('<br /><input type="checkbox" id="chkSrc' + rte + '" onclick="toggleHTMLSrc(\'' + rte + '\');" /> View Source');
+ document.writeln('<iframe width="154" height="104" id="cp' + rte + '" src="' + includesPath + 'palette.htm" marginwidth="0" marginheight="0" scrolling="no" style="visibility:hidden; display: none; position: absolute;"></iframe>');
+ document.writeln('<input type="hidden" id="hdn' + rte + '" name="' + rte + '" value="">');
+ document.writeln('</div>');
+
+ document.getElementById('hdn' + rte).value = html;
+ enableDesignMode(rte, html, readOnly);
+}
+
+function enableDesignMode(rte, html, readOnly) {
+ var frameHtml = "<html id=\"" + rte + "\">\n";
+ frameHtml += "<head>\n";
+ //to reference your stylesheet, set href property below to your stylesheet path and uncomment
+ if (cssFile.length > 0) {
+ frameHtml += "<link media=\"all\" type=\"text/css\" href=\"" + cssFile + "\" rel=\"stylesheet\">\n";
+ } else {
+ frameHtml += "<style>\n";
+ frameHtml += "body {\n";
+ frameHtml += " background: #FFFFFF;\n";
+ frameHtml += " margin: 0px;\n";
+ frameHtml += " padding: 0px;\n";
+ frameHtml += "}\n";
+ frameHtml += "</style>\n";
+ }
+ frameHtml += "</head>\n";
+ frameHtml += "<body>\n";
+ frameHtml += html + "\n";
+ frameHtml += "</body>\n";
+ frameHtml += "</html>";
+
+ if (document.all) {
+ var oRTE = frames[rte].document;
+ oRTE.open();
+ oRTE.write(frameHtml);
+ oRTE.close();
+ if (!readOnly) oRTE.designMode = "On";
+ } else {
+ try {
+ if (!readOnly) document.getElementById(rte).contentDocument.designMode = "on";
+ try {
+ var oRTE = document.getElementById(rte).contentWindow.document;
+ oRTE.open();
+ oRTE.write(frameHtml);
+ oRTE.close();
+ if (isGecko && !readOnly) {
+ //attach a keyboard handler for gecko browsers to make keyboard shortcuts work
+ oRTE.addEventListener("keypress", kb_handler, true);
+ }
+ } catch (e) {
+ alert("Error preloading content.");
+ }
+ } catch (e) {
+ //gecko may take some time to enable design mode.
+ //Keep looping until able to set.
+ if (isGecko) {
+ setTimeout("enableDesignMode('" + rte + "', '" + html + "', " + readOnly + ");", 10);
+ } else {
+ return false;
+ }
+ }
+ }
+}
+
+function updateRTEs() {
+ var vRTEs = allRTEs.split(";");
+ for (var i = 0; i < vRTEs.length; i++) {
+ updateRTE(vRTEs[i]);
+ }
+}
+
+function updateRTE(rte) {
+ if (!isRichText) return;
+
+ //set message value
+ var oHdnMessage = document.getElementById('hdn' + rte);
+ var oRTE = document.getElementById(rte);
+ var readOnly = false;
+
+ //check for readOnly mode
+ if (document.all) {
+ if (frames[rte].document.designMode != "On") readOnly = true;
+ } else {
+ if (document.getElementById(rte).contentDocument.designMode != "on") readOnly = true;
+ }
+
+ if (isRichText && !readOnly) {
+ //if viewing source, switch back to design view
+ if (document.getElementById("chkSrc" + rte).checked) {
+ document.getElementById("chkSrc" + rte).checked = false;
+ toggleHTMLSrc(rte);
+ }
+
+ if (oHdnMessage.value == null) oHdnMessage.value = "";
+ if (document.all) {
+ oHdnMessage.value = frames[rte].document.body.innerHTML;
+ } else {
+ oHdnMessage.value = oRTE.contentWindow.document.body.innerHTML;
+ }
+
+ //if there is no content (other than formatting) set value to nothing
+ if (stripHTML(oHdnMessage.value.replace(" ", " ")) == ""
+ && oHdnMessage.value.toLowerCase().search("<hr") == -1
+ && oHdnMessage.value.toLowerCase().search("<img") == -1) oHdnMessage.value = "";
+ //fix for gecko
+ if (escape(oHdnMessage.value) == "%3Cbr%3E%0D%0A%0D%0A%0D%0A") oHdnMessage.value = "";
+ }
+}
+
+function toggleHTMLSrc(rte) {
+ //contributed by Bob Hutzel (thanks Bob!)
+ var oRTE;
+ if (document.all) {
+ oRTE = frames[rte].document;
+ } else {
+ oRTE = document.getElementById(rte).contentWindow.document;
+ }
+
+ if (document.getElementById("chkSrc" + rte).checked) {
+ document.getElementById("Buttons1_" + rte).style.visibility = "hidden";
+ document.getElementById("Buttons2_" + rte).style.visibility = "hidden";
+ if (document.all) {
+ oRTE.body.innerText = oRTE.body.innerHTML;
+ } else {
+ var htmlSrc = oRTE.createTextNode(oRTE.body.innerHTML);
+ oRTE.body.innerHTML = "";
+ oRTE.body.appendChild(htmlSrc);
+ }
+ } else {
+ document.getElementById("Buttons1_" + rte).style.visibility = "visible";
+ document.getElementById("Buttons2_" + rte).style.visibility = "visible";
+ if (document.all) {
+ //fix for IE
+ var output = escape(oRTE.body.innerText);
+ output = output.replace("%3CP%3E%0D%0A%3CHR%3E", "%3CHR%3E");
+ output = output.replace("%3CHR%3E%0D%0A%3C/P%3E", "%3CHR%3E");
+
+ oRTE.body.innerHTML = unescape(output);
+ } else {
+ var htmlSrc = oRTE.body.ownerDocument.createRange();
+ htmlSrc.selectNodeContents(oRTE.body);
+ oRTE.body.innerHTML = htmlSrc.toString();
+ }
+ }
+}
+
+//Function to format text in the text box
+function FormatText(rte, command, option) {
+ var oRTE;
+ if (document.all) {
+ oRTE = frames[rte];
+
+ //get current selected range
+ var selection = oRTE.document.selection;
+ if (selection != null) {
+ rng = selection.createRange();
+ }
+ } else {
+ oRTE = document.getElementById(rte).contentWindow;
+
+ //get currently selected range
+ var selection = oRTE.getSelection();
+ rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
+ }
+
+ try {
+ if ((command == "forecolor") || (command == "hilitecolor")) {
+ //save current values
+ parent.command = command;
+ currentRTE = rte;
+
+ //position and show color palette
+ buttonElement = document.getElementById(command + '_' + rte);
+ var iLeftPos = getOffsetLeft(buttonElement);
+ var iTopPos = getOffsetTop(buttonElement) + (buttonElement.offsetHeight + 4);
+ document.getElementById('cp' + rte).style.left = (iLeftPos) + "px";
+ document.getElementById('cp' + rte).style.top = (iTopPos) + "px";
+ if (document.getElementById('cp' + rte).style.visibility == "hidden") {
+ document.getElementById('cp' + rte).style.visibility = "visible";
+ document.getElementById('cp' + rte).style.display = "inline";
+ } else {
+ document.getElementById('cp' + rte).style.visibility = "hidden";
+ document.getElementById('cp' + rte).style.display = "none";
+ }
+ } else if (command == "createlink") {
+ var szURL = prompt("Enter a URL:", "");
+ try {
+ //ignore error for blank urls
+ oRTE.document.execCommand("Unlink", false, null);
+ oRTE.document.execCommand("CreateLink", false, szURL);
+ } catch (e) {
+ //do nothing
+ }
+ } else {
+ oRTE.focus();
+ oRTE.document.execCommand(command, false, option);
+ oRTE.focus();
+ }
+ } catch (e) {
+ alert(e);
+ }
+}
+
+//Function to set color
+function setColor(color) {
+ var rte = currentRTE;
+ var oRTE;
+ if (document.all) {
+ oRTE = frames[rte];
+ } else {
+ oRTE = document.getElementById(rte).contentWindow;
+ }
+
+ var parentCommand = parent.command;
+ if (document.all) {
+ //retrieve selected range
+ var sel = oRTE.document.selection;
+ if (parentCommand == "hilitecolor") parentCommand = "backcolor";
+ if (sel != null) {
+ var newRng = sel.createRange();
+ newRng = rng;
+ newRng.select();
+ }
+ }
+ oRTE.focus();
+ oRTE.document.execCommand(parentCommand, false, color);
+ oRTE.focus();
+ document.getElementById('cp' + rte).style.visibility = "hidden";
+ document.getElementById('cp' + rte).style.display = "none";
+}
+
+//Function to add image
+function AddImage(rte) {
+ var oRTE;
+ if (document.all) {
+ oRTE = frames[rte];
+
+ //get current selected range
+ var selection = oRTE.document.selection;
+ if (selection != null) {
+ rng = selection.createRange();
+ }
+ } else {
+ oRTE = document.getElementById(rte).contentWindow;
+
+ //get currently selected range
+ var selection = oRTE.getSelection();
+ rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
+ }
+
+ imagePath = prompt('Enter Image URL:', 'http://');
+ if ((imagePath != null) && (imagePath != "")) {
+ oRTE.focus();
+ oRTE.document.execCommand('InsertImage', false, imagePath);
+ oRTE.focus();
+ }
+}
+
+//function to perform spell check
+function checkspell() {
+ try {
+ var tmpis = new ActiveXObject("ieSpell.ieSpellExtension");
+ tmpis.CheckAllLinkedDocuments(document);
+ }
+ catch(exception) {
+ if(exception.number==-2146827859) {
+ if (confirm("ieSpell not detected. Click Ok to go to download page."))
+ window.open("http://www.iespell.com/download.php","DownLoad");
+ } else {
+ alert("Error Loading ieSpell: Exception " + exception.number);
+ }
+ }
+}
+
+// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
+// KJR 11/12/2004 Changed to position palette based on parent div, so palette will always appear in proper location regardless of nested divs
+function getOffsetTop(elm) {
+ var mOffsetTop = elm.offsetTop;
+ var mOffsetParent = elm.offsetParent;
+ var parents_up = 2; //the positioning div is 2 elements up the tree
+
+ while(parents_up > 0) {
+ mOffsetTop += mOffsetParent.offsetTop;
+ mOffsetParent = mOffsetParent.offsetParent;
+ parents_up--;
+ }
+
+ return mOffsetTop;
+}
+
+// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
+// KJR 11/12/2004 Changed to position palette based on parent div, so palette will always appear in proper location regardless of nested divs
+function getOffsetLeft(elm) {
+ var mOffsetLeft = elm.offsetLeft;
+ var mOffsetParent = elm.offsetParent;
+ var parents_up = 2;
+
+ while(parents_up > 0) {
+ mOffsetLeft += mOffsetParent.offsetLeft;
+ mOffsetParent = mOffsetParent.offsetParent;
+ parents_up--;
+ }
+
+ return mOffsetLeft;
+}
+
+function Select(rte, selectname) {
+ var oRTE;
+ if (document.all) {
+ oRTE = frames[rte];
+
+ //get current selected range
+ var selection = oRTE.document.selection;
+ if (selection != null) {
+ rng = selection.createRange();
+ }
+ } else {
+ oRTE = document.getElementById(rte).contentWindow;
+
+ //get currently selected range
+ var selection = oRTE.getSelection();
+ rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
+ }
+
+ var idx = document.getElementById(selectname).selectedIndex;
+ // First one is always a label
+ if (idx != 0) {
+ var selected = document.getElementById(selectname).options[idx].value;
+ var cmd = selectname.replace('_' + rte, '');
+ oRTE.focus();
+ oRTE.document.execCommand(cmd, false, selected);
+ oRTE.focus();
+ document.getElementById(selectname).selectedIndex = 0;
+ }
+}
+
+function kb_handler(evt) {
+ var rte = evt.target.id;
+
+ //contributed by Anti Veeranna (thanks Anti!)
+ if (evt.ctrlKey) {
+ var key = String.fromCharCode(evt.charCode).toLowerCase();
+ var cmd = '';
+ switch (key) {
+ case 'b': cmd = "bold"; break;
+ case 'i': cmd = "italic"; break;
+ case 'u': cmd = "underline"; break;
+ };
+
+ if (cmd) {
+ FormatText(rte, cmd, true);
+ //evt.target.ownerDocument.execCommand(cmd, false, true);
+ // stop the event bubble
+ evt.preventDefault();
+ evt.stopPropagation();
+ }
+ }
+}
+
+function docChanged (evt) {
+ alert('changed');
+}
+
+function stripHTML(oldString) {
+ var newString = oldString.replace(/(<([^>]+)>)/ig,"");
+
+ //replace carriage returns and line feeds
+ newString = newString.replace(/\r\n/g," ");
+ newString = newString.replace(/\n/g," ");
+ newString = newString.replace(/\r/g," ");
+
+ //trim string
+ newString = trim(newString);
+
+ return newString;
+}
+
+function trim(inputString) {
+ // Removes leading and trailing spaces from the passed string. Also removes
+ // consecutive spaces and replaces it with one space. If something besides
+ // a string is passed in (null, custom object, etc.) then return the input.
+ if (typeof inputString != "string") return inputString;
+ var retValue = inputString;
+ var ch = retValue.substring(0, 1);
+
+ while (ch == " ") { // Check for spaces at the beginning of the string
+ retValue = retValue.substring(1, retValue.length);
+ ch = retValue.substring(0, 1);
+ }
+ ch = retValue.substring(retValue.length - 1, retValue.length);
+
+ while (ch == " ") { // Check for spaces at the end of the string
+ retValue = retValue.substring(0, retValue.length - 1);
+ ch = retValue.substring(retValue.length - 1, retValue.length);
+ }
+
+ // Note that there are two spaces in the string - look for multiple spaces within the string
+ while (retValue.indexOf(" ") != -1) {
+ // Again, there are two spaces in each of the strings
+ retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ") + 1, retValue.length);
+ }
+ return retValue; // Return the trimmed string back to the user
+}