# HG changeset patch # User Calvin Yeh # Date 1490629858 -7200 # Node ID e5697f7775b228227a5b95b6c9448b60f0794b93 # Parent 92cb98332794c4b965f73ebea0442872253efb1f Display columns named "source" and "year" and implement filter & sorting on them. Hide the column "Start Year" diff -r 92cb98332794 -r e5697f7775b2 src/main/java/de/mpiwg/gazetteer/db/DBBook.java --- a/src/main/java/de/mpiwg/gazetteer/db/DBBook.java Mon Mar 27 17:11:45 2017 +0200 +++ b/src/main/java/de/mpiwg/gazetteer/db/DBBook.java Mon Mar 27 17:50:58 2017 +0200 @@ -15,26 +15,27 @@ private String edition = ""; private String volume = ""; private String dynasty = ""; - + private String level1 = ""; private String level2 = ""; private String admin_type = ""; private String in_jibengujiku = ""; - + private Integer start_year = 0; private Integer end_year = 0; private String comments = ""; private String toc_correction = ""; - - - + + private Integer year = 0; + private Integer source = ""; + private DBSectionVersion currentSectionVersion; - + public DBBook() { - + } - + public DBBook(ResultSet rs) throws SQLException{ this.name = rs.getString("name"); this.id = rs.getString("id"); @@ -44,23 +45,24 @@ this.edition = rs.getString("edition"); this.volume = rs.getString("volume"); this.dynasty = rs.getString("dynasty"); - + this.level1 = rs.getString("level1"); this.level2 = rs.getString("level2"); - + this.admin_type = rs.getString("admin_type"); this.in_jibengujiku = rs.getString("in_jibengujiku"); - + this.start_year = rs.getInt("start_year"); this.end_year = rs.getInt("end_year"); this.comments = rs.getString("comments"); - + this.toc_correction = rs.getString("toc_correction"); - - - + + this.year = rs.getInt("year"); + this.source = rs.getString("source"); + } - + @Override public int compareTo(DBBook o) { return this.getName().compareTo(o.getName()); @@ -75,7 +77,7 @@ this.toc_correction = toc_correction; } - + public String getId() { return id; } @@ -111,8 +113,8 @@ public void setComments(String comments){ this.comments = comments; } - - + + public String getPeriod() { return period; } @@ -232,6 +234,22 @@ this.currentSectionVersion = currentSectionVersion; } - - + public Integer getYear() { + return this.year; + } + + + public void setYear(Integer pYear) { + this.year = pYear; + } + + public String getSource() { + return this.source; + } + + + public void setSource(String pSource) { + this.source = pSource; + } + } diff -r 92cb98332794 -r e5697f7775b2 src/main/java/de/mpiwg/web/books/SortBooksBySource.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/web/books/SortBooksBySource.java Mon Mar 27 17:50:58 2017 +0200 @@ -0,0 +1,17 @@ +package de.mpiwg.web.books; + +import java.util.Comparator; + +import de.mpiwg.gazetteer.db.DBBook; + + +public class SortBooksBySource implements Comparator{ + + public int compare(DBBook o1, DBBook o2) { + if(o1 == null || o2 == null){ + return o1.getName().compareTo(o2.getName()); + } + return o1.getSource().compareTo(o2.getSource()); + } + +} diff -r 92cb98332794 -r e5697f7775b2 src/main/java/de/mpiwg/web/books/SortBooksByStartYear.java --- a/src/main/java/de/mpiwg/web/books/SortBooksByStartYear.java Mon Mar 27 17:11:45 2017 +0200 +++ b/src/main/java/de/mpiwg/web/books/SortBooksByStartYear.java Mon Mar 27 17:50:58 2017 +0200 @@ -6,12 +6,14 @@ public class SortBooksByStartYear implements Comparator{ - + public int compare(DBBook o1, DBBook o2) { + if(o1 == null || o2 == null){ - return o1.getName().compareTo(o2.getName()); + return o1.getName().compareTo(o2.getName()); } + return o1.getStart_year().compareTo(o2.getStart_year()); } -} \ No newline at end of file +} diff -r 92cb98332794 -r e5697f7775b2 src/main/java/de/mpiwg/web/books/SortBooksByYear.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/web/books/SortBooksByYear.java Mon Mar 27 17:50:58 2017 +0200 @@ -0,0 +1,19 @@ +package de.mpiwg.web.books; + +import java.util.Comparator; + +import de.mpiwg.gazetteer.db.DBBook; + + +public class SortBooksByYear implements Comparator{ + + public int compare(DBBook o1, DBBook o2) { + + if(o1 == null || o2 == null){ + return o1.getName().compareTo(o2.getName()); + } + + return o1.getYear().compareTo(o2.getYear()); + } + +} diff -r 92cb98332794 -r e5697f7775b2 src/main/java/de/mpiwg/web/jsp/BooksPage.java --- a/src/main/java/de/mpiwg/web/jsp/BooksPage.java Mon Mar 27 17:11:45 2017 +0200 +++ b/src/main/java/de/mpiwg/web/jsp/BooksPage.java Mon Mar 27 17:50:58 2017 +0200 @@ -32,11 +32,11 @@ public class BooksPage extends AbstractJSPPage{ private static Logger logger = Logger.getLogger(BooksPage.class); - + public static String bean = "booksBean"; public static String page = "pages/books.jsp"; private List completeBookList; - + private List filteredBookList; private List displayBookList; @@ -47,7 +47,7 @@ private String tocBookId = new String(); - + private String bookNameFilter = new String(); private String dynastyFilter = new String(); private String adminTypeFilter = new String(); @@ -57,17 +57,19 @@ private String editionFilter = new String(); private String lastEditorFilter = new String(); private String editTimeFilter = new String(); + private String yearFilter = new String(); + private String sourceFilter = new String(); - + private String filteringMessage; - + public void loadParameters(HttpServletRequest request, HttpServletResponse response){ this.request = request; this.response = response; - + this.tocBookId = getParameter("tocBookId"); this.bookNameFilter = getParameter("bookNameFilter"); this.dynastyFilter = getParameter("dynastyFilter"); @@ -78,17 +80,19 @@ this.editionFilter = getParameter("editionFilter"); this.lastEditorFilter = getParameter("lastEditorFilter"); this.editTimeFilter = getParameter("editTimeFilter"); - + this.yearFilter = getParameter("yearFilter"); + this.sourceFilter = getParameter("sourceFilter"); + } - - + + public void filter(){ - + this.filteredBookList = new ArrayList(); for(DBBook book : this.completeBookList){ if(!this.filteredBookList.contains(book)){ - + if( //(StringUtils.isEmpty(dynastyFilter) || StringUtils.startsWith(book.getDynasty(), dynastyFilter)) && (StringUtils.isEmpty(level1Filter) || StringUtils.contains(book.getLevel1(), level1Filter)) && (StringUtils.isEmpty(level2Filter) || StringUtils.contains(book.getLevel2(), level2Filter)) && @@ -96,7 +100,9 @@ (StringUtils.isEmpty(editionFilter) || StringUtils.contains(book.getEdition(), editionFilter)) && (StringUtils.isEmpty(bookNameFilter) || StringUtils.contains(book.getName(), bookNameFilter)) && (StringUtils.isEmpty(dynastyFilter) || StringUtils.contains(book.getDynasty(), dynastyFilter)) && - (StringUtils.isEmpty(adminTypeFilter) || StringUtils.contains(book.getAdmin_type(), adminTypeFilter)) + (StringUtils.isEmpty(adminTypeFilter) || StringUtils.contains(book.getAdmin_type(), adminTypeFilter)) && + (StringUtils.isEmpty(yearFilter) || StringUtils.contains(book.getYear(), yearFilter)) && + (StringUtils.isEmpty(sourceFilter) || StringUtils.contains(book.getSource(), sourceFilter)) ){ String lastEditor = new String(); String editTime = new String(); @@ -104,21 +110,21 @@ lastEditor = book.getCurrentSectionVersion().getEditor(); editTime = book.getCurrentSectionVersion().getDate(); } - + if( (StringUtils.isEmpty(lastEditorFilter) || StringUtils.contains(lastEditor, lastEditorFilter)) && (StringUtils.isEmpty(editTimeFilter) || StringUtils.contains(editTime, editTimeFilter)) - + ){ this.filteredBookList.add(book); - + } - + //this.filteredBookList.add(book); - - } + + } } } - + if(completeBookList.size() > 0){ this.filteringMessage = this.filteredBookList.size() + " book(s) listed after filtering"; this.paginator.setCurrentPage(0); @@ -127,17 +133,17 @@ }else{ this.filteredBookList = null; } - + } - - + + private void updateCurrentBooks() { // update displayBookList using paginator - + this.paginator.initCount(); int startRecord = this.paginator.getCurrentPage() * this.paginator.getItemsPerPage(); - + if(this.paginator.getNumberOfPages() == 0){ this.displayBookList = new ArrayList(); }else if((this.paginator.getCurrentPage() + 1) == this.paginator.getNumberOfPages()){ @@ -145,15 +151,15 @@ if(mod == 0){ this.displayBookList = filteredBookList.subList(startRecord, startRecord + this.paginator.getItemsPerPage()); }else{ - this.displayBookList = filteredBookList.subList(startRecord, startRecord + mod); + this.displayBookList = filteredBookList.subList(startRecord, startRecord + mod); } - + }else{ - this.displayBookList = filteredBookList.subList(startRecord, startRecord + this.paginator.getItemsPerPage()); + this.displayBookList = filteredBookList.subList(startRecord, startRecord + this.paginator.getItemsPerPage()); } - + } - + public List getDisplayBookList() { return displayBookList; @@ -165,7 +171,7 @@ this.displayBookList = displayBookList; } - + public String getDynastyFilter() { return dynastyFilter; } @@ -195,7 +201,25 @@ this.level1Filter = level1Filter; } - + public String getYearFilter() { + return yearFilter; + } + + + public void setYearFilter(String yearFilter) { + this.yearFilter = yearFilter; + } + + public String getSourceFilter() { + return yearFilter; + } + + + public void setSourceFilter(String sourceFilter) { + this.sourceFilter = sourceFilter; + } + + public String getTocBookId() { return tocBookId; } @@ -212,7 +236,7 @@ this.bookNumber = bookNumber; } - + public List getCompleteBookList() { return completeBookList; } @@ -221,70 +245,70 @@ if(this.completeBookList == null){ this.forceLoadBooks(); this.filteringMessage = null; - } + } } - + public void forceLoadBooks(){ logger.debug("force loadBooks"); this.loadSectionsVersion(); - + this.completeBookList = new ArrayList(); if(getSessionBean().getUser() != null){ logger.debug("loading book list"); // === load book table from db == - - for(DBBook book : DBService.getInstance().getBooks()){ + + for(DBBook book : DBService.getInstance().getBooks()){ // set editor and date (current version) book.setCurrentSectionVersion(sectionVersionMap.get(book.getId())); - + this.completeBookList.add(book); - } - + } + this.setBookNumber(this.completeBookList.size()); - + } - + sortByBookIdUp(); //bookId ascend as default sorting // Note that every sortXYZ() function has filter() in it, so it will also force reload filteredList and displayList - - - - + + + + } - + private void loadSectionsVersion(){ this.sectionVersionMap = new HashMap(); - + try { for(DBSectionVersion sv : DBService.getInstance().getSectionVersionList()){ this.sectionVersionMap.put(sv.getBooks_id(), sv); - } + } } catch (Exception e) { addMsg("There is an internal error: " + e.getLocalizedMessage()); e.printStackTrace(); } - - + + } public void setTocCorrection() { - String tocBookId = this.getTocBookId(); + String tocBookId = this.getTocBookId(); logger.debug("tocFinishedBookId=" + tocBookId); try { // update toc correction status to DB DBService.getInstance().updateTocCorrection(tocBookId, "1"); - + // update toc correction status DBService.getInstance().getBook(tocBookId).setTocCorrection("1"); - + }catch (Exception e) { addMsg("There is an internal error: " + e.getLocalizedMessage()); e.printStackTrace(); - } - + } + //logger.debug("toc_correction:"+DBService.getInstance().getBook(tocBookId).getTocCorrection()); - + } @@ -294,34 +318,34 @@ try { DBService.getInstance().updateTocCorrection(tocBookId, "0"); DBService.getInstance().getBook(tocBookId).setTocCorrection("0"); - + }catch (Exception e) { addMsg("There is an internal error: " + e.getLocalizedMessage()); e.printStackTrace(); - } - - } + } + + } public void saveComment() { - + String bookComment = getParameter("bookComment"); String currentBookId = getParameter("currentBookId"); - + logger.debug("saveComment. currentBookId=" + currentBookId + ", bookComment: "+ bookComment); - + try { DBService.getInstance().updateComment(currentBookId, bookComment); //DBService.getInstance().getBook(currentBookId).setComments(bookComment); - + } catch (Exception e) { addMsg("There is an internal error: " + e.getLocalizedMessage()); e.printStackTrace(); } - + } - - + + public void sortByBookIdUp() { Collections.sort(this.completeBookList, new SortBooksByBookId()); filter(); @@ -337,18 +361,18 @@ Collections.sort(this.completeBookList, new SortBooksByName()); filter(); } - + public void sortByBookNameDown(){ Collections.sort(this.completeBookList, new SortBooksByName()); Collections.reverse(completeBookList); filter(); } - + public void sortByLevel1Up(){ Collections.sort(this.completeBookList, new SortBooksByLevel1()); filter(); } - + public void sortByLevel1Down(){ Collections.sort(this.completeBookList, new SortBooksByLevel1()); Collections.reverse(completeBookList); @@ -358,51 +382,51 @@ Collections.sort(this.completeBookList, new SortBooksByLevel2()); filter(); } - + public void sortByLevel2Down(){ Collections.sort(this.completeBookList, new SortBooksByLevel2()); Collections.reverse(completeBookList); filter(); } - + public void sortByPeriodUp(){ Collections.sort(this.completeBookList, new SortBooksByPeriod()); filter(); } - + public void sortByPeriodDown(){ Collections.sort(this.completeBookList, new SortBooksByPeriod()); Collections.reverse(completeBookList); filter(); } - + public void sortByAdminTypeUp(){ Collections.sort(this.completeBookList, new SortBooksByAdminType()); filter(); } - + public void sortByAdminTypeDown(){ Collections.sort(this.completeBookList, new SortBooksByAdminType()); Collections.reverse(completeBookList); filter(); } - + public void sortByStartYearUp(){ Collections.sort(this.completeBookList, new SortBooksByStartYear()); filter(); } - + public void sortByStartYearDown(){ Collections.sort(this.completeBookList, new SortBooksByStartYear()); Collections.reverse(completeBookList); filter(); } - + public void sortByDynastyUp(){ Collections.sort(this.completeBookList, new SortBooksByDynasty()); filter(); } - + public void sortByDynastyDown(){ Collections.sort(this.completeBookList, new SortBooksByDynasty()); Collections.reverse(completeBookList); @@ -412,31 +436,31 @@ Collections.sort(this.completeBookList, new SortBooksByEdition()); filter(); } - + public void sortByEditionDown(){ Collections.sort(this.completeBookList, new SortBooksByEdition()); Collections.reverse(completeBookList); filter(); } - - + + public void sortByEditorUp(){ Collections.sort(this.completeBookList, new SortBooksByEditor()); filter(); } - + public void sortByEditorDown(){ Collections.sort(this.completeBookList, new SortBooksByEditor()); Collections.reverse(completeBookList); filter(); } - + public void sortByDateUp(){ Collections.sort(this.completeBookList, new SortBooksByDate()); filter(); } - + public void sortByDateDown(){ Collections.sort(this.completeBookList, new SortBooksByDate()); Collections.reverse(completeBookList); @@ -447,13 +471,35 @@ Collections.sort(this.completeBookList, new SortBooksByTocCorrection()); filter(); } - + public void sortByTocCorrectionDown(){ Collections.sort(this.completeBookList, new SortBooksByTocCorrection()); Collections.reverse(completeBookList); filter(); } - + + public void sortByYearUp(){ + Collections.sort(this.completeBookList, new SortBooksByYear()); + filter(); + } + + public void sortByYearDown(){ + Collections.sort(this.completeBookList, new SortBooksByYear()); + Collections.reverse(completeBookList); + filter(); + } + + public void sortBySourceUp(){ + Collections.sort(this.completeBookList, new SortBooksBySource()); + filter(); + } + + public void sortBySourceDown(){ + Collections.sort(this.completeBookList, new SortBooksBySource()); + Collections.reverse(completeBookList); + filter(); + } + public String getBookNameFilter() { return bookNameFilter; } @@ -539,7 +585,7 @@ public void setPaginator(DataPaginator paginator) { this.paginator = paginator; } - + public String getFilteringMessage() { diff -r 92cb98332794 -r e5697f7775b2 src/main/java/de/mpiwg/web/jsp/JSPProxy.java --- a/src/main/java/de/mpiwg/web/jsp/JSPProxy.java Mon Mar 27 17:11:45 2017 +0200 +++ b/src/main/java/de/mpiwg/web/jsp/JSPProxy.java Mon Mar 27 17:50:58 2017 +0200 @@ -4,9 +4,9 @@ import org.apache.log4j.Logger; public class JSPProxy extends AbstractJSPPage { - + private static Logger logger = Logger.getLogger(JSPProxy.class); - + private String action; private String bean; @@ -20,18 +20,18 @@ } }*/ } - - + + public String processRequest(){ - + logger.info("processRequest [bean= " + bean + ", action=" + action +"]"); - + try{ - - + + if(StringUtils.equals(bean, "loginBean")){ getSessionBean().loadParameters(request, response); - + if(StringUtils.equals(action, "login")){ getSessionBean().login(); }else if(StringUtils.equals(action, "logout")){ @@ -40,23 +40,23 @@ //return TopicListPage.page; // the new home page? // return "pages/home.jsp"; return BooksPage.page; - + } else if (getSessionBean() == null || getSessionBean().getUser() == null) { // return to home page where will ask user to login. - + // alert session timeout getSessionBean().addMsg("Timeout or Logout at another page! Please login again."); - + //return TopicListPage.page; // the new home page? //return "pages/home.jsp"; return BooksPage.page; } - - + + if(StringUtils.equals(bean, BranchPage.bean)){ - + getSessionBean().getBranchPage().loadParameters(request, response); - + if(StringUtils.equals(action, "addContributor")){ getSessionBean().getBranchPage().addContributor(); }else if(StringUtils.equals(action, "removeContributor")){ @@ -70,35 +70,35 @@ }else if (StringUtils.equals(action, "forceReloadBranch")) { getSessionBean().getBranchPage().forceReloadBranch(); } - - + + return BranchPage.page; - - + + } else if(StringUtils.equals(bean, CreateFilePage.bean)){ - + getSessionBean().getCreateFilePage().loadParameters(request, response); - + if(StringUtils.equals(action, "loadSection")){ getSessionBean().getCreateFilePage().loadSection(); }else if(StringUtils.equals(action, "reset")){ getSessionBean().getCreateFilePage().reset(); } - + return CreateFilePage.page; - + } else if(StringUtils.equals(bean, HomePage.bean)){ - + getSessionBean().getHomePage().loadParameters(request, response); - + if(StringUtils.equals(action, "deleteBranch")){ getSessionBean().getHomePage().deleteBranch(); } else if(StringUtils.equals(action, "reloadBranches")){ getSessionBean().getHomePage().reloadBranches(); - } + } // zoe add for sorting in home page, which shows user's branches else if (StringUtils.equals(action, "forceReloadBranches")) { - getSessionBean().getHomePage().forceLoadBranches();; + getSessionBean().getHomePage().forceLoadBranches();; } else if(StringUtils.equals(action, "filter")){ getSessionBean().getHomePage().filter(); } @@ -114,7 +114,7 @@ getSessionBean().getHomePage().sortByBookIdUp(); } else if(StringUtils.equals(action, "sortByBookIdDown")) { getSessionBean().getHomePage().sortByBookIdDown(); - + } else if(StringUtils.equals(action, "sortByLevel1Up")) { getSessionBean().getHomePage().sortByLevel1Up(); } else if(StringUtils.equals(action, "sortByLevel1Down")) { @@ -123,7 +123,7 @@ getSessionBean().getHomePage().sortByLevel2Up(); } else if(StringUtils.equals(action, "sortByLevel2Down")) { getSessionBean().getHomePage().sortByLevel2Down(); - + } else if(StringUtils.equals(action, "sortByAdminTypeUp")) { getSessionBean().getHomePage().sortByAdminTypeUp(); } else if(StringUtils.equals(action, "sortByAdminTypeDown")) { @@ -136,8 +136,8 @@ getSessionBean().getHomePage().sortBySectionStartPageUp(); } else if(StringUtils.equals(action, "sortBySectionStartPageDown")) { getSessionBean().getHomePage().sortBySectionStartPageDown(); - - + + } else if(StringUtils.equals(action, "sortByPeriodUp")) { getSessionBean().getHomePage().sortByPeriodUp(); } else if(StringUtils.equals(action, "sortByPeriodDown")) { @@ -159,19 +159,19 @@ } else if(StringUtils.equals(action, "sortByPublishedInDataverseDown")) { getSessionBean().getHomePage().sortByPublishedInDataverseDown(); } - + return HomePage.page; - - + + }else if(StringUtils.equals(bean, SearchPage.bean)){ getSessionBean().getSearchPage().loadParameters(request, response); - + if(StringUtils.equals(action, "search")){ getSessionBean().getSearchPage().search(); } else if(StringUtils.equals(action, "filter")){ getSessionBean().getSearchPage().filter(); - - + + //PAGINATOR } else if(StringUtils.equals(action, "firstPage")){ getSessionBean().getSearchPage().firstPage(); @@ -185,7 +185,7 @@ getSessionBean().getSearchPage().fastForward(); } else if(StringUtils.equals(action, "lastPage")){ getSessionBean().getSearchPage().lastPage(); - + //SORTING } else if(StringUtils.equals(action, "sortByBookIdUp")){ getSessionBean().getSearchPage().sortByBookIdUp(); @@ -211,7 +211,7 @@ getSessionBean().getSearchPage().sortBySectionNameUp(); } else if(StringUtils.equals(action, "sortBySectionNameDown")){ getSessionBean().getSearchPage().sortBySectionNameDown(); - + } else if(StringUtils.equals(action, "sortByLevel1Up")){ getSessionBean().getSearchPage().sortByLevel1Up(); } else if(StringUtils.equals(action, "sortByLevel1Down")){ @@ -220,52 +220,52 @@ getSessionBean().getSearchPage().sortByLevel2Up(); } else if(StringUtils.equals(action, "sortByLevel2Down")){ getSessionBean().getSearchPage().sortByLevel2Down(); - + } else if(StringUtils.equals(action, "sortByAdminTypeUp")){ getSessionBean().getSearchPage().sortByAdminTypeUp(); } else if(StringUtils.equals(action, "sortByAdminTypeDown")){ getSessionBean().getSearchPage().sortByAdminTypeDown(); - + } else if(StringUtils.equals(action, "sortByStartPageUp")){ getSessionBean().getSearchPage().sortByStartPageUp(); } else if(StringUtils.equals(action, "sortByStartPageDown")){ getSessionBean().getSearchPage().sortByStartPageDown(); - } - + } + return SearchPage.page; - + } else if(StringUtils.equals(bean, FullTextSearchPage.bean)){ getSessionBean().getFullTextSearchPage().loadParameters(request, response); - + if(StringUtils.equals(action, "search")){ getSessionBean().getFullTextSearchPage().search(); } else if(StringUtils.equals(action, "filter")){ getSessionBean().getFullTextSearchPage().filter(); } else if(StringUtils.equals(action, "save")){ getSessionBean().getFullTextSearchPage().save(); - - + + } else if(StringUtils.equals(action, "saveFiltered")){ getSessionBean().getFullTextSearchPage().saveFilteredList();; - - + + } else if(StringUtils.equals(action, "removeFocusedContent")){ getSessionBean().getFullTextSearchPage().removeFocusedContent(true); } else if(StringUtils.equals(action, "recoverFocusedContent")){ getSessionBean().getFullTextSearchPage().removeFocusedContent(false); - + // for searching in batch keywords } else if(StringUtils.equals(action, "searchBatch")){ getSessionBean().getFullTextSearchPage().searchBatch(); - + // load existing searching result } else if(StringUtils.equals(action, "loadFile")) { getSessionBean().getFullTextSearchPage().loadFile(); - + // delete existing searching result } else if(StringUtils.equals(action, "deleteFile")) { getSessionBean().getFullTextSearchPage().deleteFile(); - + //PAGINATOR } else if(StringUtils.equals(action, "firstPage")){ getSessionBean().getFullTextSearchPage().firstPage(); @@ -279,7 +279,7 @@ getSessionBean().getFullTextSearchPage().fastForward(); } else if(StringUtils.equals(action, "lastPage")){ getSessionBean().getFullTextSearchPage().lastPage(); - + //SORTING } else if(StringUtils.equals(action, "sortByInxUp")){ getSessionBean().getFullTextSearchPage().sortByInxUp(); @@ -305,7 +305,7 @@ getSessionBean().getFullTextSearchPage().sortBySectionNameUp(); } else if(StringUtils.equals(action, "sortBySectionNameDown")){ getSessionBean().getFullTextSearchPage().sortBySectionNameDown(); - + } else if(StringUtils.equals(action, "sortByLevel1Up")){ getSessionBean().getFullTextSearchPage().sortByLevel1Up(); } else if(StringUtils.equals(action, "sortByLevel1Down")){ @@ -318,29 +318,29 @@ getSessionBean().getFullTextSearchPage().sortByAdminTypeUp(); } else if(StringUtils.equals(action, "sortByAdminTypeDown")){ getSessionBean().getFullTextSearchPage().sortByAdminTypeDown(); - + } else if(StringUtils.equals(action, "sortByStartPageUp")){ getSessionBean().getFullTextSearchPage().sortByStartPageUp(); } else if(StringUtils.equals(action, "sortByStartPageDown")){ getSessionBean().getFullTextSearchPage().sortByStartPageDown(); - } - - + } + + return FullTextSearchPage.page; - - + + } else if(StringUtils.equals(bean, TopicListPage.bean)){ getSessionBean().getTopicListPage().loadParameters(request, response); - + if(StringUtils.equals(action, "forceLoadTopics")){ getSessionBean().getTopicListPage().forceLoadTopics(); - + } else if(StringUtils.equals(action, "deleteTopic")){ getSessionBean().getTopicListPage().deleteTopic(); } else if(StringUtils.equals(action, "createTopic")){ Long userId = getSessionBean().getUser().getId(); - getSessionBean().getTopicListPage().createTopic(userId); - + getSessionBean().getTopicListPage().createTopic(userId); + } else if(StringUtils.equals(action, "sortByTopicIdUp")) { getSessionBean().getTopicListPage().sortByTopicIdUp(); } else if(StringUtils.equals(action, "sortByTopicIdDown")) { @@ -365,77 +365,77 @@ getSessionBean().getTopicListPage().sortByLastModifiedUp(); } else if(StringUtils.equals(action, "sortByLastModifiedDown")) { getSessionBean().getTopicListPage().sortByLastModifiedDown(); - } - - + } + + return TopicListPage.page; - - + + } else if(StringUtils.equals(bean, TopicPage.bean)){ getSessionBean().getTopicPage().loadParameters(request, response); - + if(StringUtils.equals(action, "forceLoadTopicSectionRelation")){ getSessionBean().getTopicPage().forceLoadTopicSectionRelation(); - + } else if(StringUtils.equals(action, "filter")){ getSessionBean().getTopicPage().filter(); - - } else - + + } else + /* ==== - * topic information, which are relevant to topicListPage - * can improved by not always calling getTopicListPage().forceLoadTopics() but rather updating the changed/modified topic in topicList. + * topic information, which are relevant to topicListPage + * can improved by not always calling getTopicListPage().forceLoadTopics() but rather updating the changed/modified topic in topicList. * */ if(StringUtils.equals(action, "addContributor")){ getSessionBean().getTopicPage().addContributor(); //getSessionBean().getTopicListPage().forceLoadTopics(); - + } else if(StringUtils.equals(action, "removeContributor")){ getSessionBean().getTopicPage().removeContributor(); //getSessionBean().getTopicListPage().forceLoadTopics(); - + } else if( StringUtils.equals(action ,"updateDescription")) { getSessionBean().getTopicPage().updateDescription(); //getSessionBean().getTopicListPage().forceLoadTopics(); - + } else if( StringUtils.equals(action ,"updateKeywords")) { getSessionBean().getTopicPage().updateKeywords(); //getSessionBean().getTopicListPage().forceLoadTopics(); - - + + /* ====== */ - - + + } else if( StringUtils.equals(action ,"deleteSection")) { getSessionBean().getTopicPage().deleteSection(getLongParameter("sectionId")); - - + + } else if(StringUtils.equals(action, "addSection")) { Long selectedSectionId = getLongParameter("selectedSectionId"); Long selectedTopicId = getLongParameter("selectedTopicId"); getSessionBean().getTopicPage().addSectionToTopic(selectedSectionId, selectedTopicId); - + // TODO it's possible to add a section into a topic in the task page, so need to modify here... - + getSessionBean().getSearchPage().updateTopicSectionRelation(); - + String sourceBean = getParameter("sourceBean"); if (StringUtils.equals(sourceBean, "home")) { return HomePage.page; } else if (StringUtils.equals(sourceBean, "search")) { return SearchPage.page; } - + return SearchPage.page; - + } else if(StringUtils.equals(action, "addAllSections")) { Long selectedTopicId = getLongParameter("selectedTopicId"); getSessionBean().getTopicPage().addAllSectionsToTopic(getSessionBean().getSearchPage().getFilteredSectionList(), selectedTopicId); getSessionBean().getSearchPage().updateTopicSectionRelation(); - + return SearchPage.page; - - + + //SORTING } else if(StringUtils.equals(action, "sortByBookIdUp")){ getSessionBean().getTopicPage().sortByBookIdUp(); @@ -457,7 +457,7 @@ getSessionBean().getTopicPage().sortBySectionNameUp(); } else if(StringUtils.equals(action, "sortBySectionNameDown")){ getSessionBean().getTopicPage().sortBySectionNameDown(); - + } else if(StringUtils.equals(action, "sortByLevel1Up")){ getSessionBean().getTopicPage().sortByLevel1Up(); } else if(StringUtils.equals(action, "sortByLevel1Down")){ @@ -466,39 +466,39 @@ getSessionBean().getTopicPage().sortByLevel2Up(); } else if(StringUtils.equals(action, "sortByLevel2Down")){ getSessionBean().getTopicPage().sortByLevel2Down(); - - + + } else if(StringUtils.equals(action, "sortByAdminTypeUp")){ getSessionBean().getTopicPage().sortByAdminTypeUp(); } else if(StringUtils.equals(action, "sortByAdminTypeDown")){ getSessionBean().getTopicPage().sortByAdminTypeDown(); - + } else if(StringUtils.equals(action, "sortByStartPageUp")){ getSessionBean().getTopicPage().sortByStartPageUp(); } else if(StringUtils.equals(action, "sortByStartPageDown")){ getSessionBean().getTopicPage().sortByStartPageDown(); - } - + } + return TopicPage.page; - - + + } else if(StringUtils.equals(bean, BooksPage.bean)){ getSessionBean().getBooksPage().loadParameters(request, response); - + if(StringUtils.equals(action, "setTocCorrection")){ getSessionBean().getBooksPage().setTocCorrection(); } else if (StringUtils.equals(action, "unSetTocCorrection")){ getSessionBean().getBooksPage().unSetTocCorrection(); - + } else if(StringUtils.equals(action, "saveComment")){ getSessionBean().getBooksPage().saveComment(); - + } else if (StringUtils.equals(action, "forceReloadBooks")) { - getSessionBean().getBooksPage().forceLoadBooks(); + getSessionBean().getBooksPage().forceLoadBooks(); } else if(StringUtils.equals(action, "filter")){ getSessionBean().getBooksPage().filter(); - - + + //PAGINATOR } else if(StringUtils.equals(action, "firstPage")){ getSessionBean().getBooksPage().firstPage(); @@ -512,81 +512,91 @@ getSessionBean().getBooksPage().fastForward(); } else if(StringUtils.equals(action, "lastPage")){ getSessionBean().getBooksPage().lastPage(); - + // Sorting } else if(StringUtils.equals(action, "sortByBookIdUp")){ getSessionBean().getBooksPage().sortByBookIdUp(); } else if(StringUtils.equals(action, "sortByBookIdDown")){ getSessionBean().getBooksPage().sortByBookIdDown(); - + } else if(StringUtils.equals(action, "sortByBookNameUp")){ getSessionBean().getBooksPage().sortByBookNameUp(); } else if(StringUtils.equals(action, "sortByBookNameDown")){ getSessionBean().getBooksPage().sortByBookNameDown(); - + } else if(StringUtils.equals(action, "sortByLevel1Up")){ getSessionBean().getBooksPage().sortByLevel1Up(); } else if(StringUtils.equals(action, "sortByLevel1Down")){ getSessionBean().getBooksPage().sortByLevel1Down(); - + } else if(StringUtils.equals(action, "sortByLevel2Up")){ getSessionBean().getBooksPage().sortByLevel2Up(); } else if(StringUtils.equals(action, "sortByLevel2Down")){ getSessionBean().getBooksPage().sortByLevel2Down(); - + } else if(StringUtils.equals(action, "sortByPeriodUp")){ getSessionBean().getBooksPage().sortByPeriodUp(); } else if(StringUtils.equals(action, "sortByPeriodDown")){ getSessionBean().getBooksPage().sortByPeriodDown(); - + } else if(StringUtils.equals(action, "sortByDynastyUp")){ getSessionBean().getBooksPage().sortByDynastyUp(); } else if(StringUtils.equals(action, "sortByDynastyDown")){ getSessionBean().getBooksPage().sortByDynastyDown(); - + } else if(StringUtils.equals(action, "sortByAdminTypeUp")){ getSessionBean().getBooksPage().sortByAdminTypeUp(); } else if(StringUtils.equals(action, "sortByAdminTypeDown")){ getSessionBean().getBooksPage().sortByAdminTypeDown(); - + } else if(StringUtils.equals(action, "sortByStartYearUp")){ getSessionBean().getBooksPage().sortByStartYearUp(); } else if(StringUtils.equals(action, "sortByStartYearDown")){ getSessionBean().getBooksPage().sortByStartYearDown(); - + } else if(StringUtils.equals(action, "sortByEditionUp")){ getSessionBean().getBooksPage().sortByEditionUp(); } else if(StringUtils.equals(action, "sortByEditionDown")){ getSessionBean().getBooksPage().sortByEditionDown(); - + } else if(StringUtils.equals(action, "sortByTocCorrectionUp")){ getSessionBean().getBooksPage().sortByTocCorrectionUp(); } else if(StringUtils.equals(action, "sortByTocCorrectionDown")){ getSessionBean().getBooksPage().sortByTocCorrectionDown(); - + } else if(StringUtils.equals(action, "sortByEditorUp")){ getSessionBean().getBooksPage().sortByEditorUp(); } else if(StringUtils.equals(action, "sortByEditorDown")){ getSessionBean().getBooksPage().sortByEditorDown(); - + } else if(StringUtils.equals(action, "sortByDateUp")){ getSessionBean().getBooksPage().sortByDateUp(); } else if(StringUtils.equals(action, "sortByDateDown")){ getSessionBean().getBooksPage().sortByDateDown(); + } else if(StringUtils.equals(action, "sortByYearUp")){ + getSessionBean().getBooksPage().sortByYearUp(); + } else if(StringUtils.equals(action, "sortByYearDown")){ + getSessionBean().getBooksPage().sortByYearDown(); + } else if(StringUtils.equals(action, "sortBySourceUp")){ + getSessionBean().getBooksPage().sortBySourceUp(); + } else if(StringUtils.equals(action, "sortBySourceDown")){ + getSessionBean().getBooksPage().sortBySourceDown(); } - + + + return BooksPage.page; } - + }catch(Exception e){ e.printStackTrace(); addMsg("There is an internal error: " + e.getLocalizedMessage()); - + //return TopicListPage.page; return HomePage.page; } - - + + //Default Page: //return TopicListPage.page; // will be the new home page? return HomePage.page; diff -r 92cb98332794 -r e5697f7775b2 src/main/webapp/pages/books.jsp --- a/src/main/webapp/pages/books.jsp Mon Mar 27 17:11:45 2017 +0200 +++ b/src/main/webapp/pages/books.jsp Mon Mar 27 17:50:58 2017 +0200 @@ -10,22 +10,22 @@ - + @@ -36,31 +36,31 @@ action="<%=sessionBean.getApplicationBean().getRootServer()%>/proxy.jsp" method="post" class="contentForm"> - - + + <% if(sessionBean.getUser() == null) { %> <% } else { - if (sessionBean.getBooksPage().getCompleteBookList() == null){ + if (sessionBean.getBooksPage().getCompleteBookList() == null){ sessionBean.getBooksPage().loadParameters(request, response); sessionBean.getBooksPage().loadBooks(); } - + %> - +
List of Books - +

<%= sessionBean.getBooksPage().getBookNumber() %> books in Chinese Local Gazetteers

<%= (StringUtils.isNotEmpty(sessionBean.getBooksPage().getFilteringMessage())) ? sessionBean.getBooksPage().getFilteringMessage() : ""%>

- + - - +
+
@@ -71,20 +71,20 @@
- + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>
+ src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>
- + @@ -95,12 +95,12 @@
+ src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>
+ src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>
@@ -108,15 +108,15 @@ - + - + - + @@ -126,12 +126,12 @@
+ src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>
+ src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>
@@ -139,12 +139,12 @@ - + - + @@ -157,12 +157,12 @@ + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/> + src="<%=sessionBean.getApplicationBean().getDownImage()%>"/> @@ -170,12 +170,12 @@ - + - + @@ -188,12 +188,12 @@ + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/> + src="<%=sessionBean.getApplicationBean().getDownImage()%>"/> @@ -201,12 +201,12 @@ - + - + @@ -219,12 +219,12 @@ + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/> + src="<%=sessionBean.getApplicationBean().getDownImage()%>"/> @@ -232,12 +232,12 @@ - + - + @@ -250,12 +250,12 @@ + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/> + src="<%=sessionBean.getApplicationBean().getDownImage()%>"/> @@ -263,12 +263,12 @@ - + - + @@ -281,12 +281,12 @@ + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/> + src="<%=sessionBean.getApplicationBean().getDownImage()%>"/> @@ -294,43 +294,85 @@ - + - + - + + + + +
+ onclick="setAction('sortByYearUp', 'booksForm');" + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>
+ onclick="setAction('sortByYearDown', 'booksForm');" + src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>
+ + + +
- + + + + + + + + + + + +
+ + + +
+ +
+ +
+
+ + + +
+ +
@@ -338,12 +380,12 @@
+ src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>
+ src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>
@@ -359,12 +401,12 @@ + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/> + src="<%=sessionBean.getApplicationBean().getDownImage()%>"/> @@ -372,12 +414,12 @@ - + - + @@ -390,12 +432,12 @@ + src="<%=sessionBean.getApplicationBean().getUpImage()%>"/> + src="<%=sessionBean.getApplicationBean().getDownImage()%>"/> @@ -403,12 +445,12 @@ - + - + @@ -416,17 +458,17 @@ - +
- - - - - + + + + + <% for (DBBook book : sessionBean.getBooksPage().getDisplayBookList() ) {%> - + <%=book.getId() %> @@ -437,51 +479,50 @@ <%=book.getPeriod() %> <%=book.getDynasty() %> <%=book.getAdmin_type() %> - <%=book.getStart_year() %> + <%=book.getYear() %> Edit TOC - - - + + + <% if ( book.getTocCorrection().equals("1") ) { %> - - + <% } else { %> - - + <% } %> - + - + <%= (book.getCurrentSectionVersion() == null) ? "" : book.getCurrentSectionVersion().getEditor() %> <%= (book.getCurrentSectionVersion() == null) ? "" : book.getCurrentSectionVersion().getDate() %> - - + + - - + + - + - + <% } %> - + - +
- - + + <% } %> - + -