Author: gangolli
Date: Sat Dec 2 12:45:54 2006
New Revision: 481624
URL: http://svn.apache.org/viewvc?view=rev&rev=481624
Log:
Fixes for ROL-1145. Don't link back in time beyond creation date of weblog
(website). Relies on creation date of weblog being set (non-null). If it is
null, at least limits stepping back beyond beginning of Java epoch (Jan 1, 1970
UTC).
Modified:
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarModel.java
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarTag.java
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java
incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java
incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java
Modified:
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarModel.java
URL:
http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarModel.java?view=diff&rev=481624&r1=481623&r2=481624
==============================================================================
---
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarModel.java
(original)
+++
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarModel.java
Sat Dec 2 12:45:54 2006
@@ -32,12 +32,20 @@
public Date getDay();
public Date getNextMonth();
+
+ public Date getPrevMonth();
public String computePrevMonthUrl();
public String computeTodayMonthUrl();
public String computeNextMonthUrl();
+
+ /**
+ * Get the earliest month in which there could possibly be data. For a
weblog this
+ * is the beginning of the month containing the creation date.
+ */
+ public Date getInitialMonth();
/**
* Create URL for use on edit-weblog page, preserves the request
Modified:
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarTag.java
URL:
http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarTag.java?view=diff&rev=481624&r1=481623&r2=481624
==============================================================================
---
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarTag.java
(original)
+++
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/CalendarTag.java
Sat Dec 2 12:45:54 2006
@@ -183,9 +183,11 @@
pw.print("<tr>");
pw.print("<td colspan=\"7\" align=\"center\" "+
"class=\"hCalendarMonthYearRow"+mClassSuffix+"\">");
- pw.print("<a href=\"" + model.computePrevMonthUrl()
- + "\" title=\"" + resources.getMessage(mLocale, "calendar.prev")
- + "\" class=\"hCalendarNavBar\">«</a> ");
+ if (model.getPrevMonth().compareTo(model.getInitialMonth()) >= 0) {
+ pw.print("<a href=\"" + model.computePrevMonthUrl()
+ + "\" title=\"" + resources.getMessage(mLocale,
"calendar.prev")
+ + "\" class=\"hCalendarNavBar\">«</a> ");
+ }
pw.print( formatTitle.format(day) );
if (todayCal.getTime().compareTo(model.getNextMonth()) >= 0) {
pw.print(" <a href=\"" + model.computeNextMonthUrl()
Modified:
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java
URL:
http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java?view=diff&rev=481624&r1=481623&r2=481624
==============================================================================
---
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java
(original)
+++
incubator/roller/trunk/src/org/apache/roller/ui/core/tags/calendar/WeblogCalendarModel.java
Sat Dec 2 12:45:54 2006
@@ -87,7 +87,6 @@
protected void initDay(Date month) {
- this.day = day;
calendar = Calendar.getInstance(
weblog.getTimeZoneInstance(),
weblog.getLocaleInstance());
@@ -192,6 +191,13 @@
nextCal.add( Calendar.MONTH, 1 );
return getFirstDayOfMonth(nextCal).getTime();
}
+
+ public Date getPrevMonth() {
+ Calendar prevCal = getCalendar();
+ prevCal.setTime( day );
+ prevCal.add( Calendar.MONTH, -1 );
+ return getFirstDayOfMonth(prevCal).getTime();
+ }
protected Calendar getFirstDayOfMonth(Calendar cal) {
int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
@@ -215,7 +221,14 @@
// and strip off last two digits to get a month URL
return nextMonth;
}
-
+
+ public Date getInitialMonth() {
+ Calendar cal = getCalendar();
+ // if there is no dateCreated value, default to beginning of epoch.
+ cal.setTime(weblog.getDateCreated() != null ? weblog.getDateCreated()
: new Date(0));
+ return getFirstDayOfMonth(cal).getTime();
+ }
+
public String computePrevMonthUrl() {
// Create yyyyMMdd dates for prev month, prev month and today
Calendar prevCal = getCalendar();
Modified:
incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java
URL:
http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java?view=diff&rev=481624&r1=481623&r2=481624
==============================================================================
---
incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java
(original)
+++
incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesDayPager.java
Sat Dec 2 12:45:54 2006
@@ -94,6 +94,10 @@
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
prevDay = cal.getTime();
+ Date weblogInitialDate = weblog.getDateCreated() != null ?
weblog.getDateCreated() : new Date(0);
+ if (DateUtil.getEndOfDay(prevDay,cal).before(weblogInitialDate)) {
+ prevDay = null;
+ }
}
Modified:
incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java
URL:
http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java?view=diff&rev=481624&r1=481623&r2=481624
==============================================================================
---
incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java
(original)
+++
incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/WeblogEntriesMonthPager.java
Sat Dec 2 12:45:54 2006
@@ -29,9 +29,7 @@
import org.apache.commons.collections.comparators.ReverseComparator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.roller.business.Roller;
import org.apache.roller.business.RollerFactory;
-import org.apache.roller.business.WeblogManager;
import org.apache.roller.pojos.WeblogEntryData;
import org.apache.roller.pojos.WebsiteData;
import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
@@ -88,6 +86,11 @@
cal.setTime(month);
cal.add(Calendar.MONTH, -1);
prevMonth = cal.getTime();
+ Date endOfPrevMonth = DateUtil.getEndOfMonth(prevMonth,cal) ;
+ Date weblogInitialDate = weblog.getDateCreated() != null ?
weblog.getDateCreated() : new Date(0);
+ if (endOfPrevMonth.before(weblogInitialDate)) {
+ prevMonth = null;
+ }
}
@@ -97,14 +100,12 @@
cal.setTime(date);
cal.add(Calendar.DATE, 1);
date = cal.getTime();
- Date startDate = DateUtil.getStartOfMonth(date, cal);;
- Date endDate = DateUtil.getEndOfMonth(date, cal);;
+ Date startDate = DateUtil.getStartOfMonth(date, cal);
+ Date endDate = DateUtil.getEndOfMonth(date, cal);
if (entries == null) {
entries = new TreeMap(new ReverseComparator());
try {
- Roller roller = RollerFactory.getRoller();
- WeblogManager wmgr = roller.getWeblogManager();
Map mmap =
RollerFactory.getRoller().getWeblogManager().getWeblogEntryObjectMap(
weblog,
startDate,