Verbesserung des Filter-Handlings für Projekt- und Publikationstab bei Abteilungen und Instituten
git-svn-id: https://svn.libreccm.org/ccm/trunk@1309 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
2aff85e105
commit
b52d0a3c96
|
|
@ -1,6 +1,5 @@
|
||||||
//
|
//
|
||||||
// Copyright (C) 2010 Jens Pelzetter, for the Center of Social Politics (ZeS) of
|
// Copyright (C) 2010 Jens Pelzetter
|
||||||
// the University of Bremen
|
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public License
|
// modify it under the terms of the GNU Lesser General Public License
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,7 @@ public class SelectFilter implements Filter {
|
||||||
|
|
||||||
filter = parent.newChildElement("filter");
|
filter = parent.newChildElement("filter");
|
||||||
filter.addAttribute("type", "select");
|
filter.addAttribute("type", "select");
|
||||||
|
filter.addAttribute("label", label);
|
||||||
|
|
||||||
if(options.isEmpty()) {
|
if(options.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -124,7 +125,6 @@ public class SelectFilter implements Filter {
|
||||||
selected = value;
|
selected = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
filter.addAttribute("label", label);
|
|
||||||
filter.addAttribute("selected", selected);
|
filter.addAttribute("selected", selected);
|
||||||
|
|
||||||
if (emptyDefaultOption) {
|
if (emptyDefaultOption) {
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ import com.arsdigita.persistence.SessionManager;
|
||||||
import com.arsdigita.xml.Element;
|
import com.arsdigita.xml.Element;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,7 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
depProjectsElem.newChildElement("greeting");
|
depProjectsElem.newChildElement("greeting");
|
||||||
|
|
||||||
|
projects.addOrder("projectEnd desc");
|
||||||
projects.addOrder("projectBegin desc");
|
projects.addOrder("projectBegin desc");
|
||||||
projects.addOrder("title");
|
projects.addOrder("title");
|
||||||
|
|
||||||
|
|
@ -124,11 +125,18 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
statusFilter.generateXml(filtersElem);
|
statusFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
|
if (projects.isEmpty()) {
|
||||||
|
titleFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
|
depProjectsElem.newChildElement("noProjects");
|
||||||
|
} else {
|
||||||
final Paginator paginator = new Paginator(request,
|
final Paginator paginator = new Paginator(request,
|
||||||
(int) projects.size(),
|
(int) projects.size(),
|
||||||
config.getPageSize());
|
config.getPageSize());
|
||||||
|
|
||||||
if (paginator.getPageCount() > config.getEnableSearchLimit()) {
|
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||||
|
|| ((request.getParameter(TITLE_PARAM) != null)
|
||||||
|
|| !(request.getParameter(TITLE_PARAM).trim().isEmpty()))) {
|
||||||
titleFilter.generateXml(filtersElem);
|
titleFilter.generateXml(filtersElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -141,6 +149,7 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
depProjectsElem,
|
depProjectsElem,
|
||||||
state);
|
state);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
logger.debug(String.format("Generated projects list of department '%s' "
|
logger.debug(String.format("Generated projects list of department '%s' "
|
||||||
+ "in %d ms.",
|
+ "in %d ms.",
|
||||||
|
|
|
||||||
|
|
@ -181,22 +181,41 @@ public class SciDepartmentPublicationsTab implements GenericOrgaUnitTab {
|
||||||
publications.addOrder("title");
|
publications.addOrder("title");
|
||||||
}
|
}
|
||||||
|
|
||||||
yearFilter.setDataQuery(getData(orgaunit), "year");
|
final DataQuery yearQuery = getData(orgaunit);
|
||||||
|
yearFilter.setDataQuery(yearQuery, "year");
|
||||||
|
|
||||||
applyYearFilter(publications, request);
|
applyYearFilter(publications, request);
|
||||||
applyTitleFilter(publications, request);
|
applyTitleFilter(publications, request);
|
||||||
applyAuthorFilter(publications, request);
|
applyAuthorFilter(publications, request);
|
||||||
|
|
||||||
|
applyTitleFilter(yearQuery, request);
|
||||||
|
applyAuthorFilter(yearQuery, request);
|
||||||
|
|
||||||
|
if (publications.isEmpty()) {
|
||||||
|
yearFilter.generateXml(filtersElem);
|
||||||
|
titleFilter.generateXml(filtersElem);
|
||||||
|
authorFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
|
depPublicationsElem.newChildElement("noPublications");
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
final Paginator paginator = new Paginator(request,
|
final Paginator paginator = new Paginator(request,
|
||||||
(int) publications.size(),
|
(int) publications.size(),
|
||||||
config.getPageSize());
|
config.getPageSize());
|
||||||
|
|
||||||
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
|
||||||
|| (yearValue != null) || !(yearValue.trim().isEmpty())
|
|
||||||
|| (titleValue != null) || !(titleValue.trim().isEmpty())
|
|
||||||
|| (authorValue != null) || !(authorValue.trim().isEmpty())) {
|
|
||||||
yearFilter.generateXml(filtersElem);
|
yearFilter.generateXml(filtersElem);
|
||||||
|
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||||
|
|| ((request.getParameter(TITLE_PARAM) != null)
|
||||||
|
&& !(request.getParameter(TITLE_PARAM).trim().isEmpty()))) {
|
||||||
titleFilter.generateXml(filtersElem);
|
titleFilter.generateXml(filtersElem);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||||
|
|| ((request.getParameter(AUTHOR_PARAM) != null)
|
||||||
|
&& !(request.getParameter(AUTHOR_PARAM).trim().isEmpty()))) {
|
||||||
authorFilter.generateXml(filtersElem);
|
authorFilter.generateXml(filtersElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -101,16 +101,15 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
"filters");
|
"filters");
|
||||||
|
|
||||||
if (((request.getParameter(STATUS_PARAM) == null)
|
if (((request.getParameter(STATUS_PARAM) == null)
|
||||||
|| (request.getParameter(STATUS_PARAM).trim().isEmpty())
|
|| (request.getParameter(STATUS_PARAM).trim().isEmpty()))
|
||||||
)
|
|
||||||
&& ((request.getParameter(TITLE_PARAM) == null)
|
&& ((request.getParameter(TITLE_PARAM) == null)
|
||||||
|| request.getParameter(TITLE_PARAM).trim().isEmpty()
|
|| request.getParameter(TITLE_PARAM).trim().isEmpty())) {
|
||||||
)) {
|
|
||||||
|
|
||||||
statusFilter.generateXml(filtersElem);
|
statusFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
depProjectsElem.newChildElement("greeting");
|
depProjectsElem.newChildElement("greeting");
|
||||||
|
|
||||||
|
projects.addOrder("projectEnd desc");
|
||||||
projects.addOrder("projectBegin desc");
|
projects.addOrder("projectBegin desc");
|
||||||
projects.addOrder("title");
|
projects.addOrder("title");
|
||||||
|
|
||||||
|
|
@ -121,17 +120,23 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
} else {
|
} else {
|
||||||
projects.addOrder("title");
|
projects.addOrder("title");
|
||||||
|
|
||||||
|
|
||||||
applyStatusFilter(projects, request);
|
applyStatusFilter(projects, request);
|
||||||
applyTitleFilter(projects, request);
|
applyTitleFilter(projects, request);
|
||||||
|
|
||||||
statusFilter.generateXml(filtersElem);
|
statusFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
|
if (projects.isEmpty()) {
|
||||||
|
titleFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
|
depProjectsElem.newChildElement("noProjects");
|
||||||
|
} else {
|
||||||
final Paginator paginator = new Paginator(request,
|
final Paginator paginator = new Paginator(request,
|
||||||
(int) projects.size(),
|
(int) projects.size(),
|
||||||
config.getPageSize());
|
config.getPageSize());
|
||||||
|
|
||||||
if (paginator.getPageCount() > config.getEnableSearchLimit()) {
|
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||||
|
|| ((request.getParameter(TITLE_PARAM) != null)
|
||||||
|
|| !(request.getParameter(TITLE_PARAM).trim().isEmpty()))) {
|
||||||
titleFilter.generateXml(filtersElem);
|
titleFilter.generateXml(filtersElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -144,6 +149,7 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
depProjectsElem,
|
depProjectsElem,
|
||||||
state);
|
state);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
logger.debug(String.format("Generated projects list of department '%s' "
|
logger.debug(String.format("Generated projects list of department '%s' "
|
||||||
+ "in %d ms.",
|
+ "in %d ms.",
|
||||||
|
|
|
||||||
|
|
@ -207,19 +207,40 @@ public class SciInstitutePublicationsTab implements GenericOrgaUnitTab {
|
||||||
publications.addOrder("title");
|
publications.addOrder("title");
|
||||||
}
|
}
|
||||||
|
|
||||||
yearFilter.setDataQuery(getData(orgaunit), "year");
|
final DataQuery yearQuery = getData(orgaunit);
|
||||||
|
yearFilter.setDataQuery(yearQuery, "year");
|
||||||
|
|
||||||
applyYearFilter(publications, request);
|
applyYearFilter(publications, request);
|
||||||
applyTitleFilter(publications, request);
|
applyTitleFilter(publications, request);
|
||||||
applyAuthorFilter(publications, request);
|
applyAuthorFilter(publications, request);
|
||||||
|
|
||||||
|
applyTitleFilter(yearQuery, request);
|
||||||
|
applyAuthorFilter(yearQuery, request);
|
||||||
|
|
||||||
|
if (publications.isEmpty()) {
|
||||||
|
yearFilter.generateXml(filtersElem);
|
||||||
|
titleFilter.generateXml(filtersElem);
|
||||||
|
authorFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
|
publicationsElem.newChildElement("noPublications");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
final Paginator paginator = new Paginator(request,
|
final Paginator paginator = new Paginator(request,
|
||||||
(int) publications.size(),
|
(int) publications.size(),
|
||||||
config.getPageSize());
|
config.getPageSize());
|
||||||
|
|
||||||
yearFilter.generateXml(filtersElem);
|
yearFilter.generateXml(filtersElem);
|
||||||
if (paginator.getPageCount() > config.getEnableSearchLimit()) {
|
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||||
|
|| ((request.getParameter(TITLE_PARAM) != null)
|
||||||
|
&& !(request.getParameter(TITLE_PARAM).trim().isEmpty()))) {
|
||||||
titleFilter.generateXml(filtersElem);
|
titleFilter.generateXml(filtersElem);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||||
|
|| ((request.getParameter(AUTHOR_PARAM) != null)
|
||||||
|
&& !(request.getParameter(AUTHOR_PARAM).trim().isEmpty()))) {
|
||||||
authorFilter.generateXml(filtersElem);
|
authorFilter.generateXml(filtersElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,7 @@ public class SciInstituteSummaryTab implements GenericOrgaUnitTab {
|
||||||
institute.
|
institute.
|
||||||
getSubordinateOrgaUnits();
|
getSubordinateOrgaUnits();
|
||||||
departments.addFilter(
|
departments.addFilter(
|
||||||
String.format("%s = '%s",
|
String.format("%s = '%s'",
|
||||||
GenericOrganizationalUnitSubordinateCollection.LINK_ASSOCTYPE,
|
GenericOrganizationalUnitSubordinateCollection.LINK_ASSOCTYPE,
|
||||||
SciInstituteDepartmentsStep.ASSOC_TYPE));
|
SciInstituteDepartmentsStep.ASSOC_TYPE));
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue