view src/main/webapp/pages/home.jsp @ 62:824b808a7481

improvements and bug fixed
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Mon, 18 Jul 2016 17:35:32 +0200
parents 90d5e86c157d
children fc5116de601f
line wrap: on
line source

<%@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.DBSection"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<jsp:useBean id="sessionBean" class="de.mpiwg.web.jsp.SessionBean"
	scope="session" />

<html>

<head>
<jsp:include page="../componentes/headContent.jsp" />
<script>
	
		$(function() {
			
			
			$( ".addSectionToTopic" ).click(function() {
				var sectionId = $( this ).data('section-id');
				console.log("addSectionToTopic. sectionId = " + sectionId);
						
				var url0 = "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/addSectionToTopic.jsp?sectionId=" + sectionId + "&sourceBean=home";
		
				$.ajax( url0 )
				.done(function(data) {
					$( "#dialogAddSectionToTopicTable" ).replaceWith(data);
					dialogAddSectionToTopic.dialog( "open" );
				})
			  	.fail(function() {
			    	console.error("Error calling: " + query);
			  	})
					
			});
			
			
			var dialogAddSectionToTopic = $("#dialogAddSectionToTopic").dialog({
				position: { my: "center", at: "top+400", of: window },	// TODO show dialog at cursor position?
				autoOpen: false
			});	  
			
			
			
			$("#level1Filter").autocomplete({
				source : function(request, response) {
					$.ajax({
						url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/taskLevel1Autocomplete.jsp",
						type : "POST",
						dataType : "json",
						data : {
							term : request.term
						},
						success : function(data) {
	
							response($.map(data, function(item) {
								return {
									label : item.name,
									value : item.value,
								}
							}));
						},
						error : function(error) {
							alert('error: ' + error);
						}
					});
				},
				minLength : 0
			});	
			
			$("#level2Filter").autocomplete({
				source : function(request, response) {
					$.ajax({
						url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/taskLevel2Autocomplete.jsp",
						type : "POST",
						dataType : "json",
						data : {
							term : request.term
						},
						success : function(data) {
	
							response($.map(data, function(item) {
								return {
									label : item.name,
									value : item.value,
								}
							}));
						},
						error : function(error) {
							alert('error: ' + error);
						}
					});
				},
				minLength : 0
			});	
	
		
			$("#bookNameFilter").autocomplete({
				source : function(request, response) {
					$.ajax({
						url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/taskBookNameAutocomplete.jsp",
						type : "POST",
						dataType : "json",
						data : {
							term : request.term
						},
						success : function(data) {
	
							response($.map(data, function(item) {
								return {
									label : item.name,
									value : item.value,
								}
							}));
						},
						error : function(error) {
							alert('error: ' + error);
						}
					});
				},
				minLength : 0
			});	
			
			
			$("#dynastyFilter").autocomplete({
				source : function(request, response) {
					$.ajax({
						url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/taskDynastyAutocomplete.jsp",
						type : "POST",
						dataType : "json",
						data : {
							term : request.term
						},
						success : function(data) {
	
							response($.map(data, function(item) {
								return {
									label : item.name,
									value : item.value,
								}
							}));
						},
						error : function(error) {
							alert('error: ' + error);
						}
					});
				},
				minLength : 0
			});	
		
			$("#periodFilter").autocomplete({
				source : function(request, response) {
					$.ajax({
						url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/taskPeriodAutocomplete.jsp",
						type : "POST",
						dataType : "json",
						data : {
							term : request.term
						},
						success : function(data) {
	
							response($.map(data, function(item) {
								return {
									label : item.name,
									value : item.value,
								}
							}));
						},
						error : function(error) {
							alert('error: ' + error);
						}
					});
				},
				minLength : 0
			});	
			
			$("#adminTypeFilter").autocomplete({
				source : function(request, response) {
					$.ajax({
						url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/taskAdminTypeAutocomplete.jsp",
						type : "POST",
						dataType : "json",
						data : {
							term : request.term
						},
						success : function(data) {
	
							response($.map(data, function(item) {
								return {
									label : item.name,
									value : item.value,
								}
							}));
						},
						error : function(error) {
							alert('error: ' + error);
						}
					});
				},
				minLength : 0
			});	
			
			$("#sectionNameFilter").autocomplete({
				source : function(request, response) {
					$.ajax({
						url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/taskSectionNameAutocomplete.jsp",
						type : "POST",
						dataType : "json",
						data : {
							term : request.term
						},
						success : function(data) {
	
							response($.map(data, function(item) {
								return {
									label : item.name,
									value : item.value,
								}
							}));
						},
						error : function(error) {
							alert('error: ' + error);
						}
					});
				},
				minLength : 0
			});	
			
			$("#labelFilter").autocomplete({
				source : function(request, response) {
					$.ajax({
						url : "<%=sessionBean.getApplicationBean().getRootServer()%>/methods/taskLabelAutocomplete.jsp",
						type : "POST",
						dataType : "json",
						data : {
							term : request.term
						},
						success : function(data) {
	
							response($.map(data, function(item) {
								return {
									label : item.name,
									value : item.value,
								}
							}));
						},
						error : function(error) {
							alert('error: ' + error);
						}
					});
				},
				minLength : 0
			});	
			
		});
		
		
		function updatePage() {
			var text = getCookie();
		    
		    if (text == "1") {
		        setCookie("0");
		        setAction('forceReloadBranches', 'homeForm');

		        document.forms['homeForm'].submit();
		    }
			
		    setTimeout(updatePage, 1000);
		}
		updatePage();
		
		
		
		
	</script>
</head>

<body>

	<jsp:include page="../componentes/template.jsp" />

	<div id="dialogAddSectionToTopic" title="Add Section(s) into Topic:">
		<div id="dialogAddSectionToTopicTable"></div>
	</div>

	<div id="page">

		<%
			if (sessionBean.getUser() == null) {
		%>
		<label class="subTitel">You must login!</label>
		<%
			} else {

				if (sessionBean.getHomePage().getCompleteBranchList() == null) {
					sessionBean.getHomePage().loadParameters(request, response);
					//sessionBean.getHomePage().reloadBranches();
				}
				sessionBean.getHomePage().reloadBranches();
		%>

		<form name="homeForm" method="post"
			action="<%=sessionBean.getApplicationBean().getRootServer()%>/proxy.jsp">
			<input name="bean" type="hidden" value="homeBean" />
	
			<% if (sessionBean.getHomePage().getCompleteBranchList().isEmpty()) { %>
				<label class="subTitel">You have no task!</label>
			<% } else { %>

			<div class="subTitel">
				Your Tasks <input type="image"
					onclick="setAction('forceReloadBranches', 'homeForm');"
					src="<%=sessionBean.getApplicationBean()
							.getRefreshImage()%>"
					width="20" height="20" />

				<p class="label">
					You have
					<%=sessionBean.getHomePage().getBranchNumber()%>
					tasks.
				</p>
				<p class="label"><%=(StringUtils.isNotEmpty(sessionBean.getHomePage()
							.getFilteringMessage())) ? sessionBean
							.getHomePage().getFilteringMessage() : ""%>
				</p>
			</div>
			<jsp:include page="../componentes/paginator.jsp">
				<jsp:param name="formName" value="homeForm" />
			</jsp:include>

			<div class="tableDiv double-scroll">
				<table class="pageTable">
					<tr>
						<!-- remove this to save space 
							<td>
								<table class="sortTable">
									<tr>
										<td><label class="tableTitle">Task ID</label></td>
										<td>
											<table>
												<tr><td>
													<input type="image" 
														onclick="setAction('sortByBranchIdUp', 'homeForm');"
														src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
												</td></tr>
												<tr><td>
													<input type="image"
														onclick="setAction('sortByBranchIdDown', 'homeForm');"
														src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																				
												</td></tr>
											</table>
										</td>
									</tr>
								</table>
							</td>
							-->
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Book ID</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByBookIdUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByBookIdDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" name="bookIdFilter"
										value="<%=sessionBean.getHomePage().getBookIdFilter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Book Name</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByBookNameUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByBookNameDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" name="bookNameFilter"
										id="bookNameFilter"
										value="<%=sessionBean.getHomePage().getBookNameFilter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>

						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Level 1</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByLevel1Up', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByLevel1Down', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" class="filterInput"
										name="level1Filter" id="level1Filter"
										value="<%=sessionBean.getHomePage().getLevel1Filter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Level 2</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByLevel2Up', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByLevel2Down', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" name="level2Filter"
										id="level2Filter"
										value="<%=sessionBean.getHomePage().getLevel2Filter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Dynasty</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByDynastyUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByDynastyDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" name="dynastyFilter"
										id="dynastyFilter"
										value="<%=sessionBean.getHomePage().getDynastyFilter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Period</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByPeriodUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByPeriodDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" name="periodFilter"
										id="periodFilter"
										value="<%=sessionBean.getHomePage().getPeriodFilter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Admin Type</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByAdminTypeUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByAdminTypeDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" name="adminTypeFilter"
										id="adminTypeFilter"
										value="<%=sessionBean.getHomePage().getAdminTypeFilter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Section Name</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortBySectionNameUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortBySectionNameDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" name="sectionNameFilter"
										id="sectionNameFilter"
										value="<%=sessionBean.getHomePage().getSectionNameFilter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Pages</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortBySectionStartPageUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortBySectionStartPageDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
							</table>
						</td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Label</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByLabelUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByLabelDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<tr>
									<td><input type="text" name="labelFilter" id="labelFilter"
										size="20"
										value="<%=sessionBean.getHomePage().getLabelFilter()%>"
										size="8" /></td>
									<td><input type="image"
										onclick="setAction('filter', 'homeForm');"
										src="<%=sessionBean.getApplicationBean().getFilterImage()%>" />
									</td>
								</tr>
							</table>
						</td>
						<td><label class="tableTitle">Contributors</label></td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Last Saved</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByLastModifiedUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByLastModifiedDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>

							</table>
						</td>
						<td><label class="tableTitle">Load Text</label></td>
						<td>
							<table class="sortTable">
								<tr>
									<td><label class="tableTitle">Published in
											Dataverse</label></td>
									<td>
										<table>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByPublishedInDataverseUp', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getUpImage()%>" />
												</td>
											</tr>
											<tr>
												<td><input type="image"
													onclick="setAction('sortByPublishedInDataverseDown', 'homeForm');"
													src="<%=sessionBean.getApplicationBean().getDownImage()%>" />
												</td>
											</tr>
										</table>
									</td>
								</tr>

							</table>

						</td>

						<td><label class="tableTitle">Manage</label></td>
						<td><label class="tableTitle">Add to Topic</label></td>
						<td><label class="tableTitle">Delete</label></td>
					</tr>

					<%
						for (LGBranch branch : sessionBean.getHomePage()
										.getDisplayBranchList()) {
					%>
					<tr>
						<td><%=branch.getBook().getId()%></td>
						<td><%=branch.getBook().getName()%></td>
						<td><%=branch.getBook().getLevel1()%></td>
						<td><%=branch.getBook().getLevel2()%></td>
						<td><%=branch.getBook().getDynasty()%></td>
						<td><%=branch.getBook().getPeriod()%></td>
						<td><%=branch.getBook().getAdmin_type()%></td>
						<td><%=branch.getSection().getName()%> <%
 	if (branch.isDeprecated()) {
 %>
							<label style="color: red">*** This is a deprecated
								section ***</label> <%
 	}
 %></td>
						<td><%=branch.getSection().getPages()%></td>

						<td><%=branch.getLabel()%></td>
						<td>
							<table style="width: 120px;">
								<%
									for (String contributor : branch
														.getContributorsNameList()) {
								%>
								<tr>
									<td><label><%=contributor%></label></td>
								</tr>
								<%
									}
								%>
							</table>
						</td>
						<td><%=branch.getFomattedLastChange()%></td>
						<td><a
							onclick="branchInExtractionInterface('<%=branch.getId()%>', '<%=branch.getCurrentLastFileId()%>', '<%=branch.getSectionId()%>', '<%=branch.getSection().getName()%>', '<%=branch.getBook().getId()%>', '<%=branch.getBook().getName()%>', '<%=sessionBean.getUser().getId()%>', '<%=sessionBean.getApplicationBean()
								.getExtractionInterfaceUrl()%>');">
								<img title="Show Task in Extraction Interface"
								src="<%=sessionBean.getApplicationBean()
								.getShowImage()%>" />
						</a></td>
						<!-- Dataverse -->
						<td><%=(branch.isPublished()) ? "V" : ""%></td>

						<!-- Manage -->
						<td><a
							href="<%=sessionBean.getApplicationBean()
								.getRootServer()%>/pages/branchPage.jsp?branchId=<%=branch.getId()%>">
								<img title="Manage the task"
								src="<%=sessionBean.getApplicationBean()
								.getEditBranchImage()%>" />
						</a></td>

						<!-- Add to Topic -->
						<td style="max-width: 300px;">
							<!-- existing topic --> 
							<% if (branch.getSection().getTopicSectionRelation() != null && !branch.getSection().getTopicSectionRelation().isEmpty()) { %>
							
							<lable>Already in topic: </lable>
							<table style="width: 100%">
								<%
									for (LGTopicSectionRelation relation : branch
															.getSection().getTopicSectionRelation()) {
								%>
								<tr>
									<td>
										<table style="width: 100%; min-width: 100px">
											<tr>
												<td><%=relation.getTopic().info()%></td>
											</tr>
										</table>
									</td>
									<td style="max-width: 150px"><a
										href="<%=sessionBean.getApplicationBean()
										.getRootServer()%>/pages/topicPage.jsp?topicId=<%=relation.getTopicId()%>">
											<img title="Manage Topic"
											src="<%=sessionBean.getApplicationBean()
										.getEditBranchImage()%>" />
									</a></td>
								</tr>
								<%
									}
								%>
							</table> <%
 	}
 %> <img width="10" height="10"
							title="Add the section to Topic"
							src="<%=sessionBean.getApplicationBean()
								.getPlusImage()%>"
							data-section-id="<%=branch.getSection().getId()%>"
							class="addSectionToTopic">

						</td>

						<!-- Delete -->
						<td><input type="image" title="Delete it"
							onclick="<%=sessionBean.getApplicationBean()
								.getJSConfirmationDelete()%> deleteBranch('deleteBranch', 'homeForm', '<%=branch.getId()%>');"
							src="<%=sessionBean.getApplicationBean()
								.getDeleteImage()%>" /></td>


					</tr>

					<%
						}
					%>

				</table>

			</div>


			<jsp:include page="../componentes/paginator.jsp">
				<jsp:param name="formName" value="homeForm" />
			</jsp:include>

		</form>
		<%
			}
		%>
		<%
			}
		%>
	</div>

</body>