Skip to content

Commit 6b02a16

Browse files
committed
Merge pull request sakaiproject#1252 from pushyamig/DASH-344-3
DASH-344 including the directURL in the entity broker call only
2 parents bdd0903 + 500fdb4 commit 6b02a16

File tree

4 files changed

+183
-10
lines changed

4 files changed

+183
-10
lines changed

dashboard/app/src/java/org/sakaiproject/dash/app/DashboardUserLogic.java

+71
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,17 @@ public interface DashboardUserLogic {
3636
*/
3737
public List<NewsLink> getCurrentNewsLinks(String sakaiUserId, String contextId);
3838

39+
/**
40+
* Returns a list of NewsLink objects which the specified person has permission to access and has not hidden.
41+
* If the contextId is not null, the results will be limited to the site indicated by that value.
42+
* variable 'includeInfoLinkUrl' is used for method overloading purpose
43+
* @param sakaiUserId
44+
* @param contextId
45+
* @param includeInfoLinkUrl
46+
* @return
47+
*/
48+
public List<NewsLink> getCurrentNewsLinks(String sakaiUserId, String contextId,boolean includeInfoLinkUrl);
49+
3950
/**
4051
* Returns a list of CalendarLink objects linking a particular person to calendar items
4152
* whose time attribute is in the current date or later (i.e. it will return items representing
@@ -48,6 +59,20 @@ public interface DashboardUserLogic {
4859
* @return
4960
*/
5061
public List<CalendarLink> getFutureCalendarLinks(String sakaiUserId, String contextId, boolean hidden);
62+
63+
/**
64+
* Returns a list of CalendarLink objects linking a particular person to calendar items
65+
* whose time attribute is in the current date or later (i.e. it will return items representing
66+
* events that occurred earlier in the current day) and whose "hidden" state matches the
67+
* specified value. Results will be limited to a particular site if the contextId parameter
68+
* is not null. variable 'includeInfoLinkUrl' is used for method overloading purpose
69+
* @param sakaiUserId
70+
* @param contextId
71+
* @param hidden
72+
* @param includeInfoLinkUrl
73+
* @return
74+
*/
75+
public List<CalendarLink> getFutureCalendarLinks(String sakaiUserId, String contextId, boolean hidden, boolean includeInfoLinkUrl);
5176

5277
/**
5378
* Returns a list of NewsLink objects which the specified person has permission to access and has hidden.
@@ -57,6 +82,18 @@ public interface DashboardUserLogic {
5782
* @return
5883
*/
5984
public List<NewsLink> getHiddenNewsLinks(String sakaiUserId, String siteId);
85+
86+
/**
87+
* Returns a list of NewsLink objects which the specified person has permission to access and has hidden.
88+
* If the contextId is not null, the results will be limited to the site indicated by that value.
89+
* variable 'includeInfoLinkUrl' is used for method overloading purpose
90+
* @param sakaiUserId
91+
* @param contextId
92+
* @param includeInfoLinkUrl
93+
* @return
94+
*/
95+
96+
public List<NewsLink> getHiddenNewsLinks(String userUuid, String siteId, boolean includeInfoLinkUrl);
6097

6198
/**
6299
* Returns a paged list of NewsLink objects representing items in a "group" that the specified person
@@ -84,6 +121,19 @@ public List<NewsLink> getNewsLinksByGroupId(String sakaiUserId,
84121
* @return
85122
*/
86123
public List<CalendarLink> getPastCalendarLinks(String sakaiUserId, String contextId, boolean hidden);
124+
125+
/**
126+
* Returns a list of CalendarLink objects linking a particular person to calendar items
127+
* whose time attribute is before the current instant and whose "hidden" state matches the
128+
* specified value. Results will be limited to a particular site if the contextId parameter
129+
* is not null. variable 'includeInfoLinkUrl' is used for method overloading purpose
130+
* @param sakaiUserId
131+
* @param contextId
132+
* @param hidden
133+
* @param includeInfoLinkUrl
134+
* @return
135+
*/
136+
public List<CalendarLink> getPastCalendarLinks(String sakaiUserId, String contextId, boolean hidden, boolean includeInfoLinkUrl);
87137

88138
/**
89139
* Returns a list of CalendarLink objects linking a particular person to calendar items
@@ -94,6 +144,16 @@ public List<NewsLink> getNewsLinksByGroupId(String sakaiUserId,
94144
* @return
95145
*/
96146
public List<CalendarLink> getStarredCalendarLinks(String sakaiUserId, String contextId);
147+
/**
148+
* Returns a list of CalendarLink objects linking a particular person to calendar items
149+
* that the specified user has "starred". Results will be limited to a particular site if
150+
* the contextId parameter is not null. variable 'includeInfoLinkUrl' is used for method overloading purpose
151+
* @param sakaiUserId
152+
* @param contextId
153+
* @param includeInfoLinkUrl
154+
* @return
155+
*/
156+
public List<CalendarLink> getStarredCalendarLinks(String sakaiUserId, String contextId,boolean includeInfoLinkUrl);
97157

98158
/**
99159
* Returns a list of NewsLink objects which the specified person has permission to access and has "starred".
@@ -103,6 +163,17 @@ public List<NewsLink> getNewsLinksByGroupId(String sakaiUserId,
103163
* @return
104164
*/
105165
public List<NewsLink> getStarredNewsLinks(String sakaiUserId, String siteId);
166+
167+
/**
168+
* Returns a list of NewsLink objects which the specified person has permission to access and has "starred".
169+
* If the contextId is not null, the results will be limited to the site indicated by that value.
170+
* variable 'includeInfoLinkUrl' is used for method overloading purpose
171+
* @param sakaiUserId
172+
* @param contextId
173+
* @param includeInfoLinkUrl
174+
* @return
175+
*/
176+
public List<NewsLink> getStarredNewsLinks(String sakaiUserId, String siteId,boolean includeInfoLinkUrl);
106177

107178
/**
108179
* Hide a calendar item from views of calendar items for a particular user.

dashboard/impl/src/java/org/sakaiproject/dash/entityprovider/DashboardEntityProvider.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,16 @@ public List<?> getNewsItems(EntityView view, EntityReference ref, Map<String, Ob
5151

5252
//only return hidden items
5353
if(hidden){
54-
return dashboardCommonLogic.getHiddenNewsLinks(userUuid, siteId);
54+
return dashboardCommonLogic.getHiddenNewsLinks(userUuid, siteId,true);
5555
}
5656

5757
//only return starred items
5858
if(starred){
59-
return dashboardCommonLogic.getStarredNewsLinks(userUuid, siteId);
59+
return dashboardCommonLogic.getStarredNewsLinks(userUuid, siteId,true);
6060
}
6161

6262
//return everything
63-
return dashboardCommonLogic.getCurrentNewsLinks(userUuid, siteId);
63+
return dashboardCommonLogic.getCurrentNewsLinks(userUuid, siteId, true);
6464
}
6565

6666
@EntityCustomAction(action="calendar",viewKey=EntityView.VIEW_LIST)
@@ -80,16 +80,16 @@ public List<?> getCalendarItems(EntityView view, EntityReference ref, Map<String
8080

8181
//only return starred items
8282
if(starred){
83-
return dashboardCommonLogic.getStarredCalendarLinks(userUuid, siteId);
83+
return dashboardCommonLogic.getStarredCalendarLinks(userUuid, siteId,true);
8484
}
8585

8686
//only return past items. Could be hidden depending on param
8787
if(past){
88-
return dashboardCommonLogic.getPastCalendarLinks(userUuid, siteId, hidden);
88+
return dashboardCommonLogic.getPastCalendarLinks(userUuid, siteId, hidden,true);
8989
}
9090

9191
//return everything. Could be hidden depending on param
92-
return dashboardCommonLogic.getFutureCalendarLinks(userUuid, siteId, hidden);
92+
return dashboardCommonLogic.getFutureCalendarLinks(userUuid, siteId, hidden, true);
9393
}
9494

9595

dashboard/impl/src/java/org/sakaiproject/dash/logic/DashboardCommonLogicImpl.java

+33
Original file line numberDiff line numberDiff line change
@@ -1327,6 +1327,11 @@ public List<NewsLink> getCurrentNewsLinks(String sakaiUserId,
13271327
return this.dashboardUserLogic.getCurrentNewsLinks(sakaiUserId, contextId);
13281328
}
13291329

1330+
public List<NewsLink> getCurrentNewsLinks(String sakaiUserId,String contextId, boolean includeInfoLinkUrl) {
1331+
1332+
return this.dashboardUserLogic.getCurrentNewsLinks(sakaiUserId, contextId, includeInfoLinkUrl);
1333+
}
1334+
13301335
/* (non-Javadoc)
13311336
* @see org.sakaiproject.dash.app.DashboardUserLogic#getFutureCalendarLinks(java.lang.String, java.lang.String, boolean)
13321337
*/
@@ -1336,6 +1341,12 @@ public List<CalendarLink> getFutureCalendarLinks(String sakaiUserId,
13361341

13371342
return this.dashboardUserLogic.getFutureCalendarLinks(sakaiUserId, contextId, hidden);
13381343
}
1344+
1345+
public List<CalendarLink> getFutureCalendarLinks(String sakaiUserId,
1346+
String contextId, boolean hidden, boolean includeInfoLinkUrl) {
1347+
1348+
return this.dashboardUserLogic.getFutureCalendarLinks(sakaiUserId, contextId, hidden,includeInfoLinkUrl);
1349+
}
13391350

13401351
/* (non-Javadoc)
13411352
* @see org.sakaiproject.dash.app.DashboardUserLogic#getHiddenNewsLinks(java.lang.String, java.lang.String)
@@ -1345,6 +1356,11 @@ public List<NewsLink> getHiddenNewsLinks(String sakaiUserId, String siteId) {
13451356

13461357
return this.dashboardUserLogic.getHiddenNewsLinks(sakaiUserId, siteId);
13471358
}
1359+
1360+
public List<NewsLink> getHiddenNewsLinks(String sakaiUserId, String siteId, boolean includeInfoLinkUrl) {
1361+
1362+
return this.dashboardUserLogic.getHiddenNewsLinks(sakaiUserId, siteId, includeInfoLinkUrl);
1363+
}
13481364

13491365
/* (non-Javadoc)
13501366
* @see org.sakaiproject.dash.app.DashboardUserLogic#getNewsLinksByGroupId(java.lang.String, java.lang.String, int, int)
@@ -1365,6 +1381,12 @@ public List<CalendarLink> getPastCalendarLinks(String sakaiUserId,
13651381

13661382
return this.dashboardUserLogic.getPastCalendarLinks(sakaiUserId, contextId, hidden);
13671383
}
1384+
1385+
public List<CalendarLink> getPastCalendarLinks(String sakaiUserId,
1386+
String contextId, boolean hidden, boolean includeInfoLinkUrl) {
1387+
1388+
return this.dashboardUserLogic.getPastCalendarLinks(sakaiUserId, contextId, hidden, includeInfoLinkUrl);
1389+
}
13681390

13691391
/* (non-Javadoc)
13701392
* @see org.sakaiproject.dash.app.DashboardUserLogic#getStarredCalendarLinks(java.lang.String, java.lang.String)
@@ -1375,6 +1397,12 @@ public List<CalendarLink> getStarredCalendarLinks(String sakaiUserId,
13751397

13761398
return this.dashboardUserLogic.getStarredCalendarLinks(sakaiUserId, contextId);
13771399
}
1400+
1401+
public List<CalendarLink> getStarredCalendarLinks(String sakaiUserId,
1402+
String contextId, boolean includeInfoLinkUrl) {
1403+
1404+
return this.dashboardUserLogic.getStarredCalendarLinks(sakaiUserId, contextId, includeInfoLinkUrl);
1405+
}
13781406

13791407
/* (non-Javadoc)
13801408
* @see org.sakaiproject.dash.app.DashboardUserLogic#getStarredNewsLinks(java.lang.String, java.lang.String)
@@ -1384,6 +1412,11 @@ public List<NewsLink> getStarredNewsLinks(String sakaiUserId, String siteId) {
13841412

13851413
return this.dashboardUserLogic.getStarredNewsLinks(sakaiUserId, siteId);
13861414
}
1415+
1416+
public List<NewsLink> getStarredNewsLinks(String sakaiUserId, String siteId,boolean includeInfoLinkUrl) {
1417+
1418+
return this.dashboardUserLogic.getStarredNewsLinks(sakaiUserId, siteId, includeInfoLinkUrl);
1419+
}
13871420

13881421
/* (non-Javadoc)
13891422
* @see org.sakaiproject.dash.app.DashboardUserLogic#hideCalendarItem(java.lang.String, long)

dashboard/impl/src/java/org/sakaiproject/dash/logic/DashboardUserLogicImpl.java

+73-4
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,14 @@ public int countNewsLinksByGroupId(String sakaiUserId,
9393
*/
9494
@Override
9595
public List<NewsLink> getCurrentNewsLinks(String sakaiId, String siteId) {
96+
return getCurrentNewsLinks(sakaiId, siteId, false);
97+
}
98+
/*
99+
* This method is used for getting CurrentNewsLinks, if 'includeInfoLinkUrl`= true directUrl of a particular source type will be included
100+
* part of the list. For EntityBroker feed call we are including this infolinkUrl as part of the list. For the Dashboard UI call we are not as this has
101+
* some performance issues.
102+
*/
103+
public List<NewsLink> getCurrentNewsLinks(String sakaiId, String siteId, boolean includeInfoLinkUrl) {
96104
List<NewsLink> links = dao.getCurrentNewsLinks(sakaiId, siteId);
97105

98106
if(links != null) {
@@ -110,10 +118,12 @@ public List<NewsLink> getCurrentNewsLinks(String sakaiId, String siteId) {
110118
} else {
111119
item.setTitle(typeObj.getGroupTitle(itemCount, item.getContext().getContextTitle(), item.getNewsTimeLabelKey()));
112120
}
121+
}else{
122+
logger.debug("The source type is null");
113123
}
114124
}else{
115-
//When getItemCount() > 1 the infoLinkUrl is null and hence we don't need to run this call.
116-
if(item!=null){
125+
//When getItemCount() > 1 the infoLinkUrl is null and hence we don't get the InfoLinkUrl and we are running this call only for entity broker feed.
126+
if(item!=null && includeInfoLinkUrl){
117127
setItemInfoLinkUrl(item);
118128
}
119129
}
@@ -189,10 +199,22 @@ private void setItemInfoLinkUrl(CalendarItem item) {
189199
*/
190200
@Override
191201
public List<CalendarLink> getFutureCalendarLinks(String sakaiUserId, String contextId, boolean hidden) {
202+
return getFutureCalendarLinks(sakaiUserId, contextId, hidden,false);
203+
}
204+
205+
/*
206+
* This method is used for getting FutureCalendarLinks, if 'includeInfoLinkUrl`= true directUrl of a particular source type will be included
207+
* part of the list. For EntityBroker feed call we are including this infolinkUrl as part of the list. For the Dashboard UI call we are not as this has
208+
* some performance issues.
209+
*/
210+
public List<CalendarLink> getFutureCalendarLinks(String sakaiUserId, String contextId, boolean hidden, boolean includeInfoLinkUrl) {
192211
List<CalendarLink> futureCalendarLinks = dao.getFutureCalendarLinks(sakaiUserId, contextId, hidden);
212+
if(!includeInfoLinkUrl){
213+
return futureCalendarLinks;
214+
}
193215
for (CalendarLink calendarLink : futureCalendarLinks) {
194-
CalendarItem calendarItem = calendarLink.getCalendarItem();
195-
setItemInfoLinkUrl(calendarItem);
216+
CalendarItem calendarItem = calendarLink.getCalendarItem();
217+
setItemInfoLinkUrl(calendarItem);
196218
}
197219
return futureCalendarLinks;
198220
}
@@ -202,7 +224,18 @@ public List<CalendarLink> getFutureCalendarLinks(String sakaiUserId, String cont
202224
*/
203225
@Override
204226
public List<NewsLink> getHiddenNewsLinks(String sakaiId, String siteId) {
227+
return getHiddenNewsLinks(sakaiId,siteId,false);
228+
}
229+
/*
230+
* This method is used for getting HiddenNewsLinks, if 'includeInfoLinkUrl`= true directUrl of a particular source type will be included
231+
* part of the list. For EntityBroker feed call we are including this infolinkUrl as part of the list. For the Dashboard UI call we are not as this has
232+
* some performance issues.
233+
*/
234+
public List<NewsLink> getHiddenNewsLinks(String sakaiId, String siteId, boolean includeInfoLinkUrl) {
205235
List<NewsLink> hiddenNewsLinks = dao.getHiddenNewsLinks(sakaiId, siteId);
236+
if(!includeInfoLinkUrl){
237+
return hiddenNewsLinks;
238+
}
206239
for (NewsLink newsLink : hiddenNewsLinks) {
207240
NewsItem item = newsLink.getNewsItem();
208241
setItemInfoLinkUrl(item);
@@ -224,7 +257,18 @@ public List<NewsLink> getNewsLinksByGroupId(String sakaiUserId,
224257
*/
225258
@Override
226259
public List<CalendarLink> getPastCalendarLinks(String sakaiUserId, String contextId, boolean hidden) {
260+
return getPastCalendarLinks(sakaiUserId, contextId, hidden,false);
261+
}
262+
/*
263+
* This method is used for getting PastCalendarLinks, if 'includeInfoLinkUrl`= true directUrl of a particular source type will be included
264+
* part of the list. For EntityBroker feed call we are including this infolinkUrl as part of the list. For the Dashboard UI call we are not as this has
265+
* some performance issues.
266+
*/
267+
public List<CalendarLink> getPastCalendarLinks(String sakaiUserId, String contextId, boolean hidden, boolean includeInfoLinkUrl) {
227268
List<CalendarLink> pastCalendarLinks = dao.getPastCalendarLinks(sakaiUserId, contextId, hidden);
269+
if(!includeInfoLinkUrl){
270+
return pastCalendarLinks;
271+
}
228272
for (CalendarLink calendarLink : pastCalendarLinks) {
229273
CalendarItem calendarItem = calendarLink.getCalendarItem();
230274
setItemInfoLinkUrl(calendarItem);
@@ -237,7 +281,19 @@ public List<CalendarLink> getPastCalendarLinks(String sakaiUserId, String contex
237281
*/
238282
@Override
239283
public List<CalendarLink> getStarredCalendarLinks(String sakaiUserId, String contextId) {
284+
return getStarredCalendarLinks(sakaiUserId, contextId,false);
285+
}
286+
287+
/*
288+
* This method is used for getting StarredCalendarLinks, if 'includeInfoLinkUrl`= true directUrl of a particular source type will be included
289+
* part of the list. For EntityBroker feed call we are including this infolinkUrl as part of the list. For the Dashboard UI call we are not as this has
290+
* some performance issues.
291+
*/
292+
public List<CalendarLink> getStarredCalendarLinks(String sakaiUserId, String contextId, boolean includeInfoLinkUrl) {
240293
List<CalendarLink> starredCalendarLinks = dao.getStarredCalendarLinks(sakaiUserId, contextId);
294+
if(!includeInfoLinkUrl){
295+
return starredCalendarLinks;
296+
}
241297
for (CalendarLink calendarLink : starredCalendarLinks) {
242298
CalendarItem calendarItem = calendarLink.getCalendarItem();
243299
setItemInfoLinkUrl(calendarItem);
@@ -250,7 +306,20 @@ public List<CalendarLink> getStarredCalendarLinks(String sakaiUserId, String con
250306
*/
251307
@Override
252308
public List<NewsLink> getStarredNewsLinks(String sakaiId, String siteId) {
309+
return getStarredNewsLinks(sakaiId, siteId, false);
310+
}
311+
312+
/*
313+
* This method is used for getting StarredNewsLinks, if 'includeInfoLinkUrl`= true directUrl of a particular source type will be included
314+
* part of the list. For EntityBroker feed call we are including this infolinkUrl as part of the list. For the Dashboard UI call we are not as this has
315+
* some performance issues.
316+
*/
317+
318+
public List<NewsLink> getStarredNewsLinks(String sakaiId, String siteId, boolean includeInfoLinkUrl) {
253319
List<NewsLink> starredNewsLinks = dao.getStarredNewsLinks(sakaiId, siteId);
320+
if(!includeInfoLinkUrl){
321+
return starredNewsLinks;
322+
}
254323
for (NewsLink newsLink : starredNewsLinks) {
255324
NewsItem item = newsLink.getNewsItem();
256325
setItemInfoLinkUrl(item);

0 commit comments

Comments
 (0)