From 5ab3f2b375fbe5d87a5eae8acbdb126619fc096b Mon Sep 17 00:00:00 2001 From: Jim Eng Date: Tue, 3 Apr 2012 23:18:09 +0000 Subject: [PATCH] DASH-216 Added checks to see whether to expire particular kinds of links and whether to purge links. git-svn-id: https://source.sakaiproject.org/svn/dashboard/trunk@313218 66ffb92e-73f9-0310-93c1-f5514f145a0a --- .../dash/logic/DashboardConfig.java | 2 ++ .../dash/logic/DashboardLogicImpl.java | 35 ++++++++++++++----- .../impl/src/resources/hsqldb.properties | 2 ++ dashboard/impl/src/resources/mysql.properties | 2 ++ .../impl/src/resources/oracle.properties | 2 ++ 5 files changed, 34 insertions(+), 9 deletions(-) diff --git a/dashboard/api/src/java/org/sakaiproject/dash/logic/DashboardConfig.java b/dashboard/api/src/java/org/sakaiproject/dash/logic/DashboardConfig.java index c45352725cdc..9573fd6275e4 100644 --- a/dashboard/api/src/java/org/sakaiproject/dash/logic/DashboardConfig.java +++ b/dashboard/api/src/java/org/sakaiproject/dash/logic/DashboardConfig.java @@ -36,6 +36,8 @@ public interface DashboardConfig { public static final String PROP_REMOVE_CALENDAR_ITEMS_AFTER_WEEKS = "PROP_REMOVE_CALENDAR_ITEMS_AFTER_WEEKS"; public static final String PROP_REMOVE_STARRED_CALENDAR_ITEMS_AFTER_WEEKS = "PROP_REMOVE_STARRED_CALENDAR_ITEMS_AFTER_WEEKS"; public static final String PROP_REMOVE_HIDDEN_CALENDAR_ITEMS_AFTER_WEEKS = "PROP_REMOVE_STARRED_CALENDAR_ITEMS_AFTER_WEEKS"; + public static final String PROP_REMOVE_NEWS_ITEMS_WITH_NO_LINKS = "PROP_REMOVE_NEWS_ITEMS_WITH_NO_LINKS"; + public static final String PROP_REMOVE_CALENDAR_ITEMS_WITH_NO_LINKS = "PROP_REMOVE_NEWS_ITEMS_WITH_NO_LINKS"; // horizon settings public static final String PROP_DAYS_BETWEEN_HORIZ0N_UPDATES = "PROP_DAYS_BETWEEN_HORIZ0N_UPDATES"; diff --git a/dashboard/impl/src/java/org/sakaiproject/dash/logic/DashboardLogicImpl.java b/dashboard/impl/src/java/org/sakaiproject/dash/logic/DashboardLogicImpl.java index 5fa07c14f1ee..c6d1d887d62a 100644 --- a/dashboard/impl/src/java/org/sakaiproject/dash/logic/DashboardLogicImpl.java +++ b/dashboard/impl/src/java/org/sakaiproject/dash/logic/DashboardLogicImpl.java @@ -1914,12 +1914,20 @@ protected void expireAndPurgeNewsItems() { Integer weeksToExpireItems = dashboardConfig.getConfigValue(DashboardConfig.PROP_REMOVE_NEWS_ITEMS_AFTER_WEEKS, DEFAULT_NEWS_ITEM_EXPIRATION); Integer weeksToExpireStarredItems = dashboardConfig.getConfigValue(DashboardConfig.PROP_REMOVE_STARRED_NEWS_ITEMS_AFTER_WEEKS, DEFAULT_NEWS_ITEM_EXPIRATION); Integer weeksToExpireHiddenItems = dashboardConfig.getConfigValue(DashboardConfig.PROP_REMOVE_HIDDEN_NEWS_ITEMS_AFTER_WEEKS, DEFAULT_NEWS_ITEM_EXPIRATION); - - expireNewsLinks(new Date(System.currentTimeMillis() - weeksToExpireItems.intValue() * ONE_WEEK_IN_MILLIS), false, false); - expireNewsLinks(new Date(System.currentTimeMillis() - weeksToExpireStarredItems.intValue() * ONE_WEEK_IN_MILLIS), false, false); - expireNewsLinks(new Date(System.currentTimeMillis() - weeksToExpireHiddenItems.intValue() * ONE_WEEK_IN_MILLIS), false, true); - purgeNewsItems(); + Integer purgeItemsWithoutLinks = dashboardConfig.getConfigValue(DashboardConfig.PROP_REMOVE_NEWS_ITEMS_WITH_NO_LINKS, 0); + if(weeksToExpireItems.intValue() > 0) { + expireNewsLinks(new Date(System.currentTimeMillis() - weeksToExpireItems.intValue() * ONE_WEEK_IN_MILLIS), false, false); + } + if(weeksToExpireStarredItems.intValue() > 0) { + expireNewsLinks(new Date(System.currentTimeMillis() - weeksToExpireStarredItems.intValue() * ONE_WEEK_IN_MILLIS), false, false); + } + if(weeksToExpireHiddenItems.intValue() > 0) { + expireNewsLinks(new Date(System.currentTimeMillis() - weeksToExpireHiddenItems.intValue() * ONE_WEEK_IN_MILLIS), false, true); + } + if(purgeItemsWithoutLinks.intValue() > 0) { + purgeNewsItems(); + } } private void purgeNewsItems() { @@ -1935,11 +1943,20 @@ protected void expireAndPurgeCalendarItems() { Integer weeksToExpireItems = dashboardConfig.getConfigValue(DashboardConfig.PROP_REMOVE_CALENDAR_ITEMS_AFTER_WEEKS, DEFAULT_CALENDAR_ITEM_EXPIRATION); Integer weeksToExpireStarredItems = dashboardConfig.getConfigValue(DashboardConfig.PROP_REMOVE_STARRED_CALENDAR_ITEMS_AFTER_WEEKS, DEFAULT_CALENDAR_ITEM_EXPIRATION); Integer weeksToExpireHiddenItems = dashboardConfig.getConfigValue(DashboardConfig.PROP_REMOVE_HIDDEN_CALENDAR_ITEMS_AFTER_WEEKS, DEFAULT_CALENDAR_ITEM_EXPIRATION); + Integer purgeItemsWithoutLinks = dashboardConfig.getConfigValue(DashboardConfig.PROP_REMOVE_CALENDAR_ITEMS_WITH_NO_LINKS, 0); - expireCalendarLinks(new Date(System.currentTimeMillis() - weeksToExpireItems.intValue() * ONE_WEEK_IN_MILLIS), false, false); - expireCalendarLinks(new Date(System.currentTimeMillis() - weeksToExpireStarredItems.intValue() * ONE_WEEK_IN_MILLIS), false, false); - expireCalendarLinks(new Date(System.currentTimeMillis() - weeksToExpireHiddenItems.intValue() * ONE_WEEK_IN_MILLIS), false, true); - purgeCalendarItems(); + if(weeksToExpireItems.intValue() > 0) { + expireCalendarLinks(new Date(System.currentTimeMillis() - weeksToExpireItems.intValue() * ONE_WEEK_IN_MILLIS), false, false); + } + if(weeksToExpireStarredItems.intValue() > 0) { + expireCalendarLinks(new Date(System.currentTimeMillis() - weeksToExpireStarredItems.intValue() * ONE_WEEK_IN_MILLIS), false, false); + } + if(weeksToExpireHiddenItems.intValue() > 0) { + expireCalendarLinks(new Date(System.currentTimeMillis() - weeksToExpireHiddenItems.intValue() * ONE_WEEK_IN_MILLIS), false, true); + } + if(purgeItemsWithoutLinks.intValue() > 0) { + purgeCalendarItems(); + } } private void purgeCalendarItems() { diff --git a/dashboard/impl/src/resources/hsqldb.properties b/dashboard/impl/src/resources/hsqldb.properties index 226ec1285218..46a32b598ae8 100644 --- a/dashboard/impl/src/resources/hsqldb.properties +++ b/dashboard/impl/src/resources/hsqldb.properties @@ -35,6 +35,8 @@ insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_ insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_REMOVE_ITEMS_AFTER_WEEKS', 52); \ insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_REMOVE_STARRED_ITEMS_AFTER_WEEKS', 26); \ insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_REMOVE_HIDDEN_ITEMS_AFTER_WEEKS', 4); \ +insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_REMOVE_NEWS_ITEMS_WITH_NO_LINKS', 1); \ +insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_REMOVE_CALENDAR_ITEMS_WITH_NO_LINKS', 1); \ insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_DAYS_BETWEEN_HORIZ0N_UPDATES', 1); \ insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_WEEKS_TO_HORIZON', 4); \ insert into dash_config (id, property_name, property_value) values (NULL, 'PROP_MOTD_MODE', 1); \ diff --git a/dashboard/impl/src/resources/mysql.properties b/dashboard/impl/src/resources/mysql.properties index 029e32d7ce11..2809e1cbef53 100644 --- a/dashboard/impl/src/resources/mysql.properties +++ b/dashboard/impl/src/resources/mysql.properties @@ -31,6 +31,8 @@ insert into dash_config (property_name, property_value) values ('PROP_REMOVE_HID insert into dash_config (property_name, property_value) values ('PROP_REMOVE_CALENDAR_ITEMS_AFTER_WEEKS', 2); \ insert into dash_config (property_name, property_value) values ('PROP_REMOVE_STARRED_CALENDAR_ITEMS_AFTER_WEEKS', 26); \ insert into dash_config (property_name, property_value) values ('PROP_REMOVE_HIDDEN_CALENDAR_ITEMS_AFTER_WEEKS', 1); \ +insert into dash_config (property_name, property_value) values ('PROP_REMOVE_NEWS_ITEMS_WITH_NO_LINKS', 1); \ +insert into dash_config (property_name, property_value) values ('PROP_REMOVE_CALENDAR_ITEMS_WITH_NO_LINKS', 1); \ insert into dash_config (property_name, property_value) values ('PROP_DAYS_BETWEEN_HORIZ0N_UPDATES', 1); \ insert into dash_config (property_name, property_value) values ('PROP_WEEKS_TO_HORIZON', 4); \ insert into dash_config (property_name, property_value) values ('PROP_MOTD_MODE', 1); \ diff --git a/dashboard/impl/src/resources/oracle.properties b/dashboard/impl/src/resources/oracle.properties index b7d7eb2f1839..5235ad1dcabb 100644 --- a/dashboard/impl/src/resources/oracle.properties +++ b/dashboard/impl/src/resources/oracle.properties @@ -37,6 +37,8 @@ insert into dash_config (id, property_name, property_value) values (dash_config_ insert into dash_config (id, property_name, property_value) values (dash_config_seq.nextval, 'PROP_REMOVE_CALENDAR_ITEMS_AFTER_WEEKS', 2); \ insert into dash_config (id, property_name, property_value) values (dash_config_seq.nextval, 'PROP_REMOVE_STARRED_CALENDAR_ITEMS_AFTER_WEEKS', 26); \ insert into dash_config (id, property_name, property_value) values (dash_config_seq.nextval, 'PROP_REMOVE_HIDDEN_CALENDAR_ITEMS_AFTER_WEEKS', 1); \ +insert into dash_config (id, property_name, property_value) values (dash_config_seq.nextval, 'PROP_REMOVE_NEWS_ITEMS_WITH_NO_LINKS', 1); \ +insert into dash_config (id, property_name, property_value) values (dash_config_seq.nextval, 'PROP_REMOVE_CALENDAR_ITEMS_WITH_NO_LINKS', 1); \ insert into dash_config (id, property_name, property_value) values (dash_config_seq.nextval, 'PROP_DAYS_BETWEEN_HORIZ0N_UPDATES', 1); \ insert into dash_config (id, property_name, property_value) values (dash_config_seq.nextval, 'PROP_WEEKS_TO_HORIZON', 4); \ insert into dash_config (id, property_name, property_value) values (dash_config_seq.nextval, 'PROP_MOTD_MODE', 1); \