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,11 +93,13 @@ public class SciMemberList extends AbstractComponent {
|
||||||
final StringBuffer whereBuffer = new StringBuffer();
|
final StringBuffer whereBuffer = new StringBuffer();
|
||||||
final int page;
|
final int page;
|
||||||
final int offset;
|
final int offset;
|
||||||
|
final String surnameFilter;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
// final String surnameFilter = request.getParameter("surname");
|
// final String surnameFilter = request.getParameter("surname");
|
||||||
final String surnameFilter = Globalization.decodeParameter(request,
|
// final String
|
||||||
"surname");
|
surnameFilter = Globalization.decodeParameter(request,
|
||||||
|
"surname");
|
||||||
|
|
||||||
if (surnameFilter != null && !surnameFilter.trim().isEmpty()) {
|
if (surnameFilter != null && !surnameFilter.trim().isEmpty()) {
|
||||||
whereBuffer
|
whereBuffer
|
||||||
|
|
@ -161,6 +163,30 @@ public class SciMemberList extends AbstractComponent {
|
||||||
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
||||||
paginatorElem.addAttribute("limit", Integer.toString(limit));
|
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()) {
|
while (mainQueryResult.next()) {
|
||||||
|
|
||||||
generateResultEntry(mainQueryResult, listElem);
|
generateResultEntry(mainQueryResult, listElem);
|
||||||
|
|
|
||||||
|
|
@ -99,22 +99,24 @@ public class SciProjectList extends AbstractComponent {
|
||||||
final StringBuffer whereBuffer = new StringBuffer();
|
final StringBuffer whereBuffer = new StringBuffer();
|
||||||
final int page;
|
final int page;
|
||||||
final int offset;
|
final int offset;
|
||||||
|
final String titleFilter;
|
||||||
|
final BigDecimal researchFieldFilter;
|
||||||
try {
|
try {
|
||||||
// final String titleFilter = request.getParameter("title");
|
// final String titleFilter = request.getParameter("title");
|
||||||
final String titleFilter = Globalization.decodeParameter(request,
|
titleFilter = Globalization.decodeParameter(request,
|
||||||
"title");
|
"title");
|
||||||
final BigDecimal categoryFilter;
|
// final BigDecimal categoryFilter;
|
||||||
if (request.getParameter("category") == null) {
|
if (request.getParameter("researchfield") == null) {
|
||||||
categoryFilter = null;
|
researchFieldFilter = null;
|
||||||
} else if (request.getParameter("category").matches("\\d*")) {
|
} else if (request.getParameter("researchfield").matches("\\d*")) {
|
||||||
categoryFilter
|
researchFieldFilter
|
||||||
= new BigDecimal(request.getParameter("category"));
|
= new BigDecimal(request.getParameter("researchfield"));
|
||||||
} else {
|
} else {
|
||||||
categoryFilter = null;
|
researchFieldFilter = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (titleFilter != null && !titleFilter.trim().isEmpty()
|
if (titleFilter != null && !titleFilter.trim().isEmpty()
|
||||||
|| categoryFilter != null) {
|
|| researchFieldFilter != null) {
|
||||||
|
|
||||||
whereBuffer.append(" AND ");
|
whereBuffer.append(" AND ");
|
||||||
}
|
}
|
||||||
|
|
@ -127,7 +129,7 @@ public class SciProjectList extends AbstractComponent {
|
||||||
.newChildElement("title");
|
.newChildElement("title");
|
||||||
titleFilterElem.setText(titleFilter);
|
titleFilterElem.setText(titleFilter);
|
||||||
}
|
}
|
||||||
if (categoryFilter != null) {
|
if (researchFieldFilter != null) {
|
||||||
if (titleFilter != null && !titleFilter.trim().isEmpty()) {
|
if (titleFilter != null && !titleFilter.trim().isEmpty()) {
|
||||||
whereBuffer.append(" AND ");
|
whereBuffer.append(" AND ");
|
||||||
}
|
}
|
||||||
|
|
@ -135,8 +137,12 @@ public class SciProjectList extends AbstractComponent {
|
||||||
whereBuffer.append("parent_id IN (SELECT object_id "
|
whereBuffer.append("parent_id IN (SELECT object_id "
|
||||||
+ "FROM cat_object_category_map "
|
+ "FROM cat_object_category_map "
|
||||||
+ "WHERE category_id = ")
|
+ "WHERE category_id = ")
|
||||||
.append(categoryFilter.toString())
|
.append(researchFieldFilter.toString())
|
||||||
.append(") ");
|
.append(") ");
|
||||||
|
|
||||||
|
final Element researchFieldFilterElem = filtersElem
|
||||||
|
.newChildElement("researchfield");
|
||||||
|
researchFieldFilterElem.setText(researchFieldFilter.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
final String orderBy
|
final String orderBy
|
||||||
|
|
@ -197,6 +203,40 @@ public class SciProjectList extends AbstractComponent {
|
||||||
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
||||||
paginatorElem.addAttribute("limit", Integer.toString(limit));
|
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()) {
|
while (mainQueryResult.next()) {
|
||||||
|
|
||||||
generateResultEntry(mainQueryResult, listElem);
|
generateResultEntry(mainQueryResult, listElem);
|
||||||
|
|
|
||||||
|
|
@ -299,11 +299,16 @@ public class PublicationList extends AbstractComponent {
|
||||||
final StringBuffer whereBuffer = new StringBuffer();
|
final StringBuffer whereBuffer = new StringBuffer();
|
||||||
final int page;
|
final int page;
|
||||||
final int offset;
|
final int offset;
|
||||||
|
final String titleFilter;
|
||||||
|
final Integer yearFilter;
|
||||||
|
final String authorsFilter;
|
||||||
|
final String orderByParam;
|
||||||
try {
|
try {
|
||||||
final String titleFilter = Globalization.decodeParameter(request,
|
// final String
|
||||||
"title");
|
titleFilter = Globalization.decodeParameter(request,
|
||||||
|
"title");
|
||||||
// final String titleFilter = request.getParameter("title");
|
// final String titleFilter = request.getParameter("title");
|
||||||
final Integer yearFilter;
|
// final Integer yearFilter;
|
||||||
if (request.getParameter("yearOfPublication") == null) {
|
if (request.getParameter("yearOfPublication") == null) {
|
||||||
yearFilter = null;
|
yearFilter = null;
|
||||||
} else if (request.getParameter("yearOfPublication").matches("\\d*")) {
|
} else if (request.getParameter("yearOfPublication").matches("\\d*")) {
|
||||||
|
|
@ -312,7 +317,8 @@ public class PublicationList extends AbstractComponent {
|
||||||
} else {
|
} else {
|
||||||
yearFilter = null;
|
yearFilter = null;
|
||||||
}
|
}
|
||||||
final String authorsFilter = request.getParameter("authorsStr");
|
// final String
|
||||||
|
authorsFilter = request.getParameter("authorsStr");
|
||||||
if ((titleFilter != null && !titleFilter.trim().isEmpty())
|
if ((titleFilter != null && !titleFilter.trim().isEmpty())
|
||||||
|| yearFilter != null
|
|| yearFilter != null
|
||||||
|| (authorsFilter != null && !authorsFilter.trim().isEmpty())) {
|
|| (authorsFilter != null && !authorsFilter.trim().isEmpty())) {
|
||||||
|
|
@ -351,7 +357,7 @@ public class PublicationList extends AbstractComponent {
|
||||||
authorsFilterElem.setText(authorsFilter);
|
authorsFilterElem.setText(authorsFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
final String orderByParam;
|
// final String orderByParam
|
||||||
if (request.getParameter("sort") == null) {
|
if (request.getParameter("sort") == null) {
|
||||||
orderByParam = "yearDesc";
|
orderByParam = "yearDesc";
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -457,6 +463,62 @@ public class PublicationList extends AbstractComponent {
|
||||||
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
paginatorElem.addAttribute("offset", Integer.toString(offset));
|
||||||
paginatorElem.addAttribute("limit", Integer.toString(limit));
|
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()) {
|
while (mainQueryResult.next()) {
|
||||||
|
|
||||||
generateResultEntry(mainQueryResult, listElem);
|
generateResultEntry(mainQueryResult, listElem);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue