BugFixes for the native SQL lists. The filters were not progagated to next/previous pages when using the links in the paginator.
git-svn-id: https://svn.libreccm.org/ccm/trunk@5111 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
581be75360
commit
f7fa20556e
|
|
@ -93,10 +93,12 @@ public class SciMemberList extends AbstractComponent {
|
|||
final StringBuffer whereBuffer = new StringBuffer();
|
||||
final int page;
|
||||
final int offset;
|
||||
final String surnameFilter;
|
||||
try {
|
||||
|
||||
// final String surnameFilter = request.getParameter("surname");
|
||||
final String surnameFilter = Globalization.decodeParameter(request,
|
||||
// final String
|
||||
surnameFilter = Globalization.decodeParameter(request,
|
||||
"surname");
|
||||
|
||||
if (surnameFilter != null && !surnameFilter.trim().isEmpty()) {
|
||||
|
|
@ -161,6 +163,30 @@ public class SciMemberList extends AbstractComponent {
|
|||
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
||||
paginatorElem.addAttribute("limit", Integer.toString(limit));
|
||||
|
||||
if (page < maxPages) {
|
||||
final StringBuffer linkBuffer = new StringBuffer("?page=");
|
||||
linkBuffer.append(page + 1);
|
||||
if (surnameFilter != null) {
|
||||
linkBuffer.append("&surnameFilter=");
|
||||
linkBuffer.append(surnameFilter);
|
||||
}
|
||||
|
||||
paginatorElem.addAttribute("nextPageLink",
|
||||
linkBuffer.toString());
|
||||
}
|
||||
|
||||
if (page > 1) {
|
||||
final StringBuffer linkBuffer = new StringBuffer("?page=");
|
||||
linkBuffer.append(page - 1);
|
||||
if (surnameFilter != null) {
|
||||
linkBuffer.append("&surnameFilter=");
|
||||
linkBuffer.append(surnameFilter);
|
||||
|
||||
}
|
||||
paginatorElem.addAttribute("prevPageLink",
|
||||
linkBuffer.toString());
|
||||
}
|
||||
|
||||
while (mainQueryResult.next()) {
|
||||
|
||||
generateResultEntry(mainQueryResult, listElem);
|
||||
|
|
|
|||
|
|
@ -99,22 +99,24 @@ public class SciProjectList extends AbstractComponent {
|
|||
final StringBuffer whereBuffer = new StringBuffer();
|
||||
final int page;
|
||||
final int offset;
|
||||
final String titleFilter;
|
||||
final BigDecimal researchFieldFilter;
|
||||
try {
|
||||
// final String titleFilter = request.getParameter("title");
|
||||
final String titleFilter = Globalization.decodeParameter(request,
|
||||
titleFilter = Globalization.decodeParameter(request,
|
||||
"title");
|
||||
final BigDecimal categoryFilter;
|
||||
if (request.getParameter("category") == null) {
|
||||
categoryFilter = null;
|
||||
} else if (request.getParameter("category").matches("\\d*")) {
|
||||
categoryFilter
|
||||
= new BigDecimal(request.getParameter("category"));
|
||||
// final BigDecimal categoryFilter;
|
||||
if (request.getParameter("researchfield") == null) {
|
||||
researchFieldFilter = null;
|
||||
} else if (request.getParameter("researchfield").matches("\\d*")) {
|
||||
researchFieldFilter
|
||||
= new BigDecimal(request.getParameter("researchfield"));
|
||||
} else {
|
||||
categoryFilter = null;
|
||||
researchFieldFilter = null;
|
||||
}
|
||||
|
||||
if (titleFilter != null && !titleFilter.trim().isEmpty()
|
||||
|| categoryFilter != null) {
|
||||
|| researchFieldFilter != null) {
|
||||
|
||||
whereBuffer.append(" AND ");
|
||||
}
|
||||
|
|
@ -127,7 +129,7 @@ public class SciProjectList extends AbstractComponent {
|
|||
.newChildElement("title");
|
||||
titleFilterElem.setText(titleFilter);
|
||||
}
|
||||
if (categoryFilter != null) {
|
||||
if (researchFieldFilter != null) {
|
||||
if (titleFilter != null && !titleFilter.trim().isEmpty()) {
|
||||
whereBuffer.append(" AND ");
|
||||
}
|
||||
|
|
@ -135,8 +137,12 @@ public class SciProjectList extends AbstractComponent {
|
|||
whereBuffer.append("parent_id IN (SELECT object_id "
|
||||
+ "FROM cat_object_category_map "
|
||||
+ "WHERE category_id = ")
|
||||
.append(categoryFilter.toString())
|
||||
.append(researchFieldFilter.toString())
|
||||
.append(") ");
|
||||
|
||||
final Element researchFieldFilterElem = filtersElem
|
||||
.newChildElement("researchfield");
|
||||
researchFieldFilterElem.setText(researchFieldFilter.toString());
|
||||
}
|
||||
|
||||
final String orderBy
|
||||
|
|
@ -197,6 +203,40 @@ public class SciProjectList extends AbstractComponent {
|
|||
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
||||
paginatorElem.addAttribute("limit", Integer.toString(limit));
|
||||
|
||||
if (page < maxPages) {
|
||||
final StringBuffer linkBuffer = new StringBuffer("?page=");
|
||||
linkBuffer.append(page + 1);
|
||||
if (titleFilter != null) {
|
||||
linkBuffer
|
||||
.append("&title=")
|
||||
.append(titleFilter);
|
||||
}
|
||||
if (researchFieldFilter != null) {
|
||||
linkBuffer
|
||||
.append("researchfield=")
|
||||
.append(researchFieldFilter.toString());
|
||||
}
|
||||
paginatorElem
|
||||
.addAttribute("nextPageLink", linkBuffer.toString());
|
||||
}
|
||||
|
||||
if (page > 1) {
|
||||
final StringBuffer linkBuffer = new StringBuffer("?page=");
|
||||
linkBuffer.append(page - 1);
|
||||
if (titleFilter != null) {
|
||||
linkBuffer
|
||||
.append("&title=")
|
||||
.append(titleFilter);
|
||||
}
|
||||
if (researchFieldFilter != null) {
|
||||
linkBuffer
|
||||
.append("researchfield=")
|
||||
.append(researchFieldFilter.toString());
|
||||
}
|
||||
paginatorElem
|
||||
.addAttribute("prevPageLink", linkBuffer.toString());
|
||||
}
|
||||
|
||||
while (mainQueryResult.next()) {
|
||||
|
||||
generateResultEntry(mainQueryResult, listElem);
|
||||
|
|
|
|||
|
|
@ -299,11 +299,16 @@ public class PublicationList extends AbstractComponent {
|
|||
final StringBuffer whereBuffer = new StringBuffer();
|
||||
final int page;
|
||||
final int offset;
|
||||
final String titleFilter;
|
||||
final Integer yearFilter;
|
||||
final String authorsFilter;
|
||||
final String orderByParam;
|
||||
try {
|
||||
final String titleFilter = Globalization.decodeParameter(request,
|
||||
// final String
|
||||
titleFilter = Globalization.decodeParameter(request,
|
||||
"title");
|
||||
// final String titleFilter = request.getParameter("title");
|
||||
final Integer yearFilter;
|
||||
// final Integer yearFilter;
|
||||
if (request.getParameter("yearOfPublication") == null) {
|
||||
yearFilter = null;
|
||||
} else if (request.getParameter("yearOfPublication").matches("\\d*")) {
|
||||
|
|
@ -312,7 +317,8 @@ public class PublicationList extends AbstractComponent {
|
|||
} else {
|
||||
yearFilter = null;
|
||||
}
|
||||
final String authorsFilter = request.getParameter("authorsStr");
|
||||
// final String
|
||||
authorsFilter = request.getParameter("authorsStr");
|
||||
if ((titleFilter != null && !titleFilter.trim().isEmpty())
|
||||
|| yearFilter != null
|
||||
|| (authorsFilter != null && !authorsFilter.trim().isEmpty())) {
|
||||
|
|
@ -351,7 +357,7 @@ public class PublicationList extends AbstractComponent {
|
|||
authorsFilterElem.setText(authorsFilter);
|
||||
}
|
||||
|
||||
final String orderByParam;
|
||||
// final String orderByParam
|
||||
if (request.getParameter("sort") == null) {
|
||||
orderByParam = "yearDesc";
|
||||
} else {
|
||||
|
|
@ -457,6 +463,62 @@ public class PublicationList extends AbstractComponent {
|
|||
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
||||
paginatorElem.addAttribute("limit", Integer.toString(limit));
|
||||
|
||||
if (page < maxPages) {
|
||||
final StringBuffer nextPageLinkBuffer = new StringBuffer(
|
||||
"?page=");
|
||||
nextPageLinkBuffer.append(page + 1);
|
||||
if (authorsFilter != null) {
|
||||
nextPageLinkBuffer
|
||||
.append("&authorsStr=")
|
||||
.append(authorsFilter);
|
||||
}
|
||||
if (yearFilter != null) {
|
||||
nextPageLinkBuffer
|
||||
.append("&yearOfPublication=")
|
||||
.append(yearFilter);
|
||||
}
|
||||
if (titleFilter != null) {
|
||||
nextPageLinkBuffer
|
||||
.append("&title=")
|
||||
.append(titleFilter);
|
||||
}
|
||||
if (orderByParam != null) {
|
||||
nextPageLinkBuffer
|
||||
.append("&sort=")
|
||||
.append(orderByParam);
|
||||
}
|
||||
paginatorElem.addAttribute("nextPageLink",
|
||||
nextPageLinkBuffer.toString());
|
||||
}
|
||||
|
||||
if (page > 1) {
|
||||
final StringBuffer prevPageLinkBuffer = new StringBuffer(
|
||||
"?page=");
|
||||
prevPageLinkBuffer.append(page - 1);
|
||||
if (authorsFilter != null) {
|
||||
prevPageLinkBuffer
|
||||
.append("&authorsStr=")
|
||||
.append(authorsFilter);
|
||||
}
|
||||
if (yearFilter != null) {
|
||||
prevPageLinkBuffer
|
||||
.append("&yearOfPublication=")
|
||||
.append(yearFilter);
|
||||
}
|
||||
if (titleFilter != null) {
|
||||
prevPageLinkBuffer
|
||||
.append("&title=")
|
||||
.append(titleFilter);
|
||||
}
|
||||
if (orderByParam != null) {
|
||||
prevPageLinkBuffer
|
||||
.append("&sort=")
|
||||
.append(orderByParam);
|
||||
}
|
||||
paginatorElem.addAttribute("prevPageLink",
|
||||
prevPageLinkBuffer.toString());
|
||||
}
|
||||
|
||||
while (mainQueryResult.next()) {
|
||||
|
||||
generateResultEntry(mainQueryResult, listElem);
|
||||
|
|
|
|||
Loading…
Reference in New Issue