Author: szimano Date: 2005-09-16 12:06:56 -0400 (Fri, 16 Sep 2005) New Revision: 1142 Added: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/WikiTypes.xml trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/wikiPlugins.properties trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttchementDataSource.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java Log: http://jira.jboss.com/jira/browse/JBWIKI-5 recently changed pages Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp =================================================================== --- trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp 2005-09-16 16:06:56 UTC (rev 1142) @@ -26,6 +26,7 @@ <a href="<%=actionURL%>&page=<%=defaultPage%>"><%=wikiName%></a> : <%=wikiPage%> </td> <td style="text-align: right;"> +[<a href="<%=actionURL%>&type=recentChanges">Recent changes</a>] [<a href="<%=actionURL%>&page=<%=defaultPage%>"><%=defaultPage%></a>] </td> </table> Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/WikiTypes.xml =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/WikiTypes.xml 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/WikiTypes.xml 2005-09-16 16:06:56 UTC (rev 1142) @@ -65,4 +65,16 @@ <class>org.jboss.wiki.plugins.AttachementInfoPlugin</class> </plugin> </wikiType> + <wikiType> + <name>recentChanges</name> + <class>org.jboss.wiki.plugins.DefaultWikiType</class> + <plugin> + <name>recentChanges</name> + <class>org.jboss.wiki.plugins.RecentlyChangedPagesPlugin</class> + </plugin> + <plugin> + <name>HTMLTranslatorParts</name> + <class>org.jboss.wiki.plugins.HTMLTranslatorParts</class> + </plugin> + </wikiType> </wikiTypes> \ No newline at end of file Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/wikiPlugins.properties =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/wikiPlugins.properties 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/wikiPlugins.properties 2005-09-16 16:06:56 UTC (rev 1142) @@ -5,3 +5,6 @@ #wikiHome part of url. Leave it you use default portlet conifguration wikiHome = /portal/index.html?ctrl:id=window.default.WikiPortletWindow&ctrl:type=action + +#number of days that should be included in recent changes plugin +recentDays = 30 Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttchementDataSource.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttchementDataSource.java 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttchementDataSource.java 2005-09-16 16:06:56 UTC (rev 1142) @@ -9,8 +9,6 @@ public Set<String> getAttachementsSet(WikiPage page); - public Set<String> getAllPageNames(); - public WikiAttachment getAttachement(String pageName, String attachementName); public WikiAttachment getAttachement(String pageName, String attachementName, int version); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java 2005-09-16 16:06:56 UTC (rev 1142) @@ -81,6 +81,8 @@ public void getContentAtVersion(WikiPage page, boolean loadContent, int version); + + public Set<String> getAllPageNames(); } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-09-16 16:06:56 UTC (rev 1142) @@ -351,7 +351,7 @@ Map<String, Integer> resPages = new HashMap<String, Integer>(); - Set<String> pages = getAttachementDataSource().getAllPageNames(); + Set<String> pages = getMediaDataSource().getAllPageNames(); for (String name : pages) { WikiPage temp = getByName(name, null); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java 2005-09-16 16:06:56 UTC (rev 1142) @@ -12,9 +12,7 @@ StringBuilder history = new StringBuilder(); String attachementName = (String)wikiSession.getAttribute("var1"); Object rollbackToVer = wikiSession.getAttribute("var2"); - - System.out.println(rollbackToVer); - + String attURL = (String)wikiSession.getAttribute("hostURL")+"/wiki/"+wikiPage.getName()+"/"; String actionURL = (String)wikiSession.getAttribute("actionURL"); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java 2005-09-16 16:06:56 UTC (rev 1142) @@ -1020,8 +1020,7 @@ endIndx); String replace = parseLinks(pagePart).replaceAll("&", "&"); - newPageContent = newPageContent.substring(0, lastBegIndx - + pagePartRegexStart.length()) + newPageContent = newPageContent.substring(0, lastBegIndx) + replace + newPageContent.substring(endIndx + pagePartRegexEnd.length()); Added: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java 2005-09-16 15:25:24 UTC (rev 1141) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java 2005-09-16 16:06:56 UTC (rev 1142) @@ -0,0 +1,94 @@ +package org.jboss.wiki.plugins; + +import java.util.Calendar; +import java.util.Date; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; + +import org.jboss.wiki.WikiPage; +import org.jboss.wiki.WikiPlugin; +import org.jboss.wiki.WikiSession; + +public class RecentlyChangedPagesPlugin extends WikiPlugin { + + private int numOfDays = 30; + + @Override + public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) { + StringBuilder recentChanges = new StringBuilder(); + + recentChanges.append("<h3>Recent changes from last ").append(numOfDays).append(" days</h3>\n"); + recentChanges.append("<hr>\n"); + recentChanges.append(HTMLTranslatorParts.pagePartRegexStart); + + int offset = recentChanges.length(); + + Set<String> pages = wikiEngine.getMediaDataSource().getAllPageNames(); + + TreeMap<Calendar, TreeSet<String>> sortedByDate = new TreeMap<Calendar, TreeSet<String>>(); + + // get now date + Calendar now = Calendar.getInstance(); + Calendar then = Calendar.getInstance(); + now.setTime(new Date()); + + for (String name : pages) { + WikiPage temp = wikiEngine.getByName(name, null); + then.setTime(temp.getEditDate()); + + then.add(Calendar.DAY_OF_MONTH, numOfDays); + + if (then.after(now)) { + //this page has been edited in last numOfDays days + Calendar key = Calendar.getInstance(); + + key.setTime(temp.getEditDate()); + + //make it 0:00:00 hour + key.set(Calendar.HOUR, 0); + key.set(Calendar.MINUTE, 0); + key.set(Calendar.SECOND, 0); + key.set(Calendar.MILLISECOND, 0); + + if (sortedByDate.get(key) == null) { + TreeSet<String> set = new TreeSet<String>(); + set.add(temp.getName()); + sortedByDate.put(key, set); + } + else { + sortedByDate.get(key).add(temp.getName()); + } + } + } + + // add pages to recentChanges page + + Set<Calendar> keySet = sortedByDate.keySet(); + + for (Calendar date : keySet) { + StringBuilder day = new StringBuilder(); + + day.append("!''").append(date.get(Calendar.DAY_OF_MONTH)).append("/").append(date.get(Calendar.MONTH)).append("/").append(date.get(Calendar.YEAR)).append("''\n"); + for (String pageName : sortedByDate.get(date)) { + day.append("[").append(pageName).append("]\\\\\n"); + } + + recentChanges.insert(offset, day.toString()); + } + + recentChanges.append(HTMLTranslatorParts.pagePartRegexEnd).append("\n"); + + wikiPage.setPageContent(recentChanges.toString()); + + return wikiPage; + } + + @Override + public void init() { + if (getProperty("recentDays") != null) { + numOfDays = Integer.valueOf(getProperty("recentDays")); + } + } + +} |