# HG changeset patch # User Calvin Yeh # Date 1499118224 -7200 # Node ID d0dcbe8254f56080ca5c6375ef7ae4a9a515bd1e # Parent 88a485937f9afde5f2c0da7b49abfc2018aacec2 New Feature: Add book year and edition year in section searching page, also prevent from book not existing exception diff -r 88a485937f9a -r d0dcbe8254f5 src/main/java/de/mpiwg/web/jsp/JSPProxy.java --- a/src/main/java/de/mpiwg/web/jsp/JSPProxy.java Wed Jun 21 06:25:34 2017 +0200 +++ b/src/main/java/de/mpiwg/web/jsp/JSPProxy.java Mon Jul 03 23:43:44 2017 +0200 @@ -243,7 +243,15 @@ getSessionBean().getSearchPage().sortByStartPageUp(); } else if(StringUtils.equals(action, "sortByStartPageDown")){ getSessionBean().getSearchPage().sortByStartPageDown(); - } else if(StringUtils.equals(action, "sortBySourceUp")){ + } else if(StringUtils.equals(action, "sortByBookYearUp")){ + getSessionBean().getSearchPage().sortByBookYearUp(); + } else if(StringUtils.equals(action, "sortByBookYearDown")){ + getSessionBean().getSearchPage().sortByBookYearDown(); + } else if(StringUtils.equals(action, "sortByEditionYearUp")){ + getSessionBean().getSearchPage().sortByEditionYearUp(); + } else if(StringUtils.equals(action, "sortByEditionYearDown")){ + getSessionBean().getSearchPage().sortByEditionYearDown(); + } else if(StringUtils.equals(action, "sortBySourceUp")){ getSessionBean().getSearchPage().sortBySourceUp(); } else if(StringUtils.equals(action, "sortBySourceDown")){ getSessionBean().getSearchPage().sortBySourceDown(); diff -r 88a485937f9a -r d0dcbe8254f5 src/main/java/de/mpiwg/web/jsp/SearchPage.java --- a/src/main/java/de/mpiwg/web/jsp/SearchPage.java Wed Jun 21 06:25:34 2017 +0200 +++ b/src/main/java/de/mpiwg/web/jsp/SearchPage.java Mon Jul 03 23:43:44 2017 +0200 @@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import de.mpiwg.web.search.*; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -17,19 +18,6 @@ import de.mpiwg.gazetteer.db.DBSection; import de.mpiwg.gazetteer.utils.DBService; import de.mpiwg.gazetteer.utils.DataProvider; -import de.mpiwg.web.search.SortSectionByAdminType; -import de.mpiwg.web.search.SortSectionByAuthor; -import de.mpiwg.web.search.SortSectionByBookId; -import de.mpiwg.web.search.SortSectionByBookName; -import de.mpiwg.web.search.SortSectionByDynasty; -import de.mpiwg.web.search.SortSectionByEdition; -import de.mpiwg.web.search.SortSectionById; -import de.mpiwg.web.search.SortSectionByLevel1; -import de.mpiwg.web.search.SortSectionByLevel2; -import de.mpiwg.web.search.SortSectionByPeriod; -import de.mpiwg.web.search.SortSectionByStartPage; -import de.mpiwg.web.search.SortSectionByVolume; -import de.mpiwg.web.search.SortSectionBySource; public class SearchPage extends AbstractJSPPage{ @@ -60,6 +48,8 @@ private String bookNameFilter = new String(); private String periodFilter = new String(); private String sectionNameFilter = new String(); + private String bookYearFilter = new String(); + private String editionYearFilter = new String(); private String sourceFilter = new String(); private DataPaginator paginator = new DataPaginator(); @@ -88,6 +78,8 @@ this.bookNameFilter = getParameter("bookNameFilter"); this.periodFilter = getParameter("periodFilter"); this.sectionNameFilter = getParameter("sectionNameFilter"); + this.bookYearFilter = getParameter("bookYearFilter"); + this.editionYearFilter = getParameter("editionYearFilter"); this.sourceFilter = getParameter("sourceFilter"); this.searchIn = getIntParameter("searchIn"); @@ -155,7 +147,9 @@ (StringUtils.isEmpty(bookNameFilter) || StringUtils.startsWith(section.getBook().getName(), bookNameFilter)) && (StringUtils.isEmpty(periodFilter) || StringUtils.startsWith(section.getBook().getPeriod(), periodFilter)) && (StringUtils.isEmpty(sectionNameFilter) || StringUtils.startsWith(section.getName(), sectionNameFilter)) && - (StringUtils.isEmpty(sourceFilter) || StringUtils.contains(section.getBook().getSource(), sourceFilter)) && + (StringUtils.isEmpty(bookYearFilter) || section.getBook().getBookYear() == Integer.parseInt(bookYearFilter)) && + (StringUtils.isEmpty(editionYearFilter) || section.getBook().getEditionYear() == Integer.parseInt(editionYearFilter)) && + (StringUtils.isEmpty(sourceFilter) || StringUtils.contains(section.getBook().getSource(), sourceFilter)) && (StringUtils.isEmpty(adminTypeFilter) || StringUtils.startsWith(section.getBook().getAdmin_type(), adminTypeFilter)) ){ this.filteredSectionList.add(section); @@ -533,6 +527,24 @@ this.periodFilter = periodFilter; } + public String getBookYearFilter() { + return bookYearFilter; + } + + + public void setBookYearFilter(String bookYearFilter) { + this.bookYearFilter = bookYearFilter; + } + + public String getEditionYearFilter() { + return editionYearFilter; + } + + + public void setEditionYearFilter(String editionYearFilter) { + this.editionYearFilter = editionYearFilter; + } + public String getSourceFilter() { return sourceFilter; } @@ -689,6 +701,28 @@ filter(); } + public void sortByBookYearUp(){ + Collections.sort(this.completeSectionList, new SortSectionByBookYear()); + filter(); + } + + public void sortByBookYearDown(){ + Collections.sort(this.completeSectionList, new SortSectionByBookYear()); + Collections.reverse(completeSectionList); + filter(); + } + + public void sortByEditionYearUp(){ + Collections.sort(this.completeSectionList, new SortSectionByEditionYear()); + filter(); + } + + public void sortByEditionYearDown(){ + Collections.sort(this.completeSectionList, new SortSectionByEditionYear()); + Collections.reverse(completeSectionList); + filter(); + } + public void sortBySourceUp(){ Collections.sort(this.completeSectionList, new SortSectionBySource()); filter(); @@ -701,4 +735,6 @@ } + + } diff -r 88a485937f9a -r d0dcbe8254f5 src/main/java/de/mpiwg/web/search/SortSectionByBookYear.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/web/search/SortSectionByBookYear.java Mon Jul 03 23:43:44 2017 +0200 @@ -0,0 +1,18 @@ +package de.mpiwg.web.search; + +import de.mpiwg.gazetteer.db.DBSection; + +import java.util.Comparator; + + +public class SortSectionByBookYear implements Comparator{ + + public int compare(DBSection o1, DBSection o2) { + + if(o1.getBook() == null || o2.getBook() == null){ + return o1.getName().compareTo(o2.getName()); + } + return o1.getBook().getBookYear().compareTo(o2.getBook().getBookYear()); + } + +} diff -r 88a485937f9a -r d0dcbe8254f5 src/main/java/de/mpiwg/web/search/SortSectionByEditionYear.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/web/search/SortSectionByEditionYear.java Mon Jul 03 23:43:44 2017 +0200 @@ -0,0 +1,18 @@ +package de.mpiwg.web.search; + +import de.mpiwg.gazetteer.db.DBSection; + +import java.util.Comparator; + + +public class SortSectionByEditionYear implements Comparator{ + + public int compare(DBSection o1, DBSection o2) { + + if(o1.getBook() == null || o2.getBook() == null){ + return o1.getName().compareTo(o2.getName()); + } + return o1.getBook().getEditionYear().compareTo(o2.getBook().getEditionYear()); + } + +} diff -r 88a485937f9a -r d0dcbe8254f5 src/main/webapp/pages/search.jsp --- a/src/main/webapp/pages/search.jsp Wed Jun 21 06:25:34 2017 +0200 +++ b/src/main/webapp/pages/search.jsp Mon Jul 03 23:43:44 2017 +0200 @@ -1,6 +1,7 @@ <%@page import="de.mpiwg.gazetteer.bo.LGBranch"%> <%@page import="de.mpiwg.gazetteer.bo.LGTopicSectionRelation"%> <%@page import="org.apache.commons.lang.StringUtils"%> +<%@page import="de.mpiwg.gazetteer.db.DBBook"%> <%@page import="de.mpiwg.gazetteer.db.DBSection"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> @@ -610,6 +611,70 @@ + + + + + + + + + + + +
+ + + +
+ +
+ +
+
+ + + +
+ + + + + + + + + + + +
+ + + +
+ +
+ +
+
+ + + +
+ + @@ -708,25 +773,47 @@ <% long userId = sessionBean.getUser().getId(); - long userDefaultTopicId = sessionBean.getTopicListPage().getDefaultTopicId(userId); - String extractionInterfaceUrl = sessionBean.getApplicationBean().getExtractionInterfaceUrl(); + long userDefaultTopicId = sessionBean.getTopicListPage().getDefaultTopicId(userId); + String extractionInterfaceUrl = sessionBean.getApplicationBean().getExtractionInterfaceUrl(); + DBBook aBook; + String BookName; for (DBSection section : sessionBean.getSearchPage().getDisplaySectionList()) { + aBook = section.getBook(); %> - - - - - - - + <%if(aBook == null){ + BookName = ""; + %> + + + + + + + + + + + <%} else { + BookName = aBook.getName();%> + + + + + + + + + + <%}%> + @@ -735,7 +822,7 @@
- - <%=section.getBook().getId()%> + + <%=section.getBookId()%> <%=section.getBook().getName()%><%=section.getBook().getLevel1()%><%=section.getBook().getLevel2()%><%=section.getBook().getDynasty()%><%=section.getBook().getPeriod()%><%=section.getBook().getAdmin_type() %><%=section.getBook().getSource() %><%=BookName%><%=aBook.getLevel1()%><%=aBook.getLevel2()%><%=aBook.getDynasty()%><%=aBook.getPeriod()%><%=aBook.getAdmin_type() %><%=aBook.getBookYear() %><%=aBook.getEditionYear() %><%=aBook.getSource() %><%=section.getName()%> <%=section.getPages()%> + onclick="sectionInExtractionInterface('<%=section.getId() %>', '<%=section.getName() %>', '<%=section.getBookId() %>', '<%=BookName %>', '<%=userDefaultTopicId %>', '<%=userId %>','<%=extractionInterfaceUrl%>');">