Skip to content

Commit

Permalink
some refactorings for better usability and maintenance
Browse files Browse the repository at this point in the history
  • Loading branch information
leocwolter committed Aug 29, 2014
1 parent 4593129 commit 88f149d
Show file tree
Hide file tree
Showing 11 changed files with 65 additions and 77 deletions.
8 changes: 3 additions & 5 deletions src/main/assets/less/mamute.less
Original file line number Diff line number Diff line change
Expand Up @@ -2718,13 +2718,11 @@ a:not(:last-child) {

#question-suggestions{
display: none;
padding-top: 1em;
margin-top: 1em;
border-top: 1px solid #efefef;
}

#question-suggestion-items{
padding-left: 10px;
max-height:200px;
overflow:auto;
}

.question-suggestion-item div.info{
margin-right:30px;
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/br/com/caelum/vraptor/server/Main.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
package br.com.caelum.vraptor.server;

import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
import java.util.Arrays;
import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ public void userProfilePagination(PaginatableDAO paginatable, User author, Order
result.include("type", type);
}

public void questionSuggestion(List<Question> questions){
result.include("results", questions);
public void questionSuggestion(String query, List<Question> questions){
result.include("questions", questions);
result.include("query", query);
}
}
10 changes: 5 additions & 5 deletions src/main/java/org/mamute/controllers/SolrSearchController.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,17 @@ public class SolrSearchController {
@Get("/search")
public void search(String query) {
result.include("query", sanitize(query));
result.include("results", doSearch(query));
result.include("results", doSearch(query, 10));
}

@Get("/questionSuggestion")
public void questionSuggestion(String query) {
result.forwardTo(BrutalTemplatesController.class).questionSuggestion(doSearch(query));
public void questionSuggestion(String query, int limit) {
result.forwardTo(BrutalTemplatesController.class).questionSuggestion(query, doSearch(query, limit));
}

private List<Question> doSearch(String query) {
private List<Question> doSearch(String query, int limit) {
String sanitized = HtmlSanitizer.sanitize(query);
List<Long> ids = index.findQuestionsByTitle(sanitized, 10);
List<Long> ids = index.findQuestionsByTitle(sanitized, limit);
return questions.getByIds(ids);
}
}
4 changes: 2 additions & 2 deletions src/main/resources/mamute.properties
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,14 @@ feature.facebook.login = true
feature.google.login = true

#use solr to index and search for questions.(if this is true, feature.google_search should be false)
feature.solr = false
feature.solr = true
#if this is true, mamute will use an embedded solr
solr.embedded = true
#solr.core=mamute
#solr.home=/tmp/solr
#solr.url=http://localhost:8983/solr/mamute

#use google embedded search to search for questions.(if this is true, feature.solr should be false)
feature.google_search = true
feature.google_search = false
#Google CSE ID for Stored Custom Search Engine on the search page.
custom_google_search_key=016122310691742107910:reef2hbhyha
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags"%>

<c:forEach var="question" items="${results}">
<div class="question-suggestion-item">
<div class="info votes">${question.voteCount}
<div class="subtitle">votes</div>
</div>
<div class="info answers">${question.answersCount}
<div class="subtitle">answers</div>
</div>
<h3 class="title item-title main-thread-title question-title">
<a href="/${question.id}-${question.information.sluggedTitle}">${question.information.title}</a>
</h3>
</div>
</c:forEach>
<c:forEach var="question" items="${questions}">
<tags:questionListItem simple="true" question="${question}"/>
</c:forEach>
<a href="/search?query=${query}"><fmt:message key="show_more"/></a>
1 change: 1 addition & 0 deletions src/main/webapp/WEB-INF/jsp/coda.jspf
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
<script src="<c:url value="/js/question-warnings.js"/>"></script>
<script src="<c:url value="/js/approve-news.js"/>"></script>
<script src="<c:url value="/js/ban-user.js"/>"></script>
<script src="<c:url value="/js/question-suggestions.js"/>"></script>
</c:if>
<c:if test="${environment.name == 'production'}" >
<script src="<c:url value="/js/jquery/jquery-plugins-${deployTimestamp}.js"/>"></script>
Expand Down
5 changes: 4 additions & 1 deletion src/main/webapp/WEB-INF/tags/questionForm.tag
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
name="title" placeholder="<fmt:message key="question.title.placeholder"/>"/>

<c:if test="${env.supports('feature.solr')}">
<tags:questionSuggest titleId="question-title"/>
<div id="question-suggestions">
<h2 class="title section-title">Similar questions</h2>
<ul class="suggested-questions-list"></ul>
</div>
</c:if>

<fmt:message var="descriptionPlaceholder" key="question.description.placeholder"/>
Expand Down
17 changes: 14 additions & 3 deletions src/main/webapp/WEB-INF/tags/questionListItem.tag
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@attribute name="question" type="org.mamute.model.Question" required="true" %>
<%@attribute name="simple" type="java.lang.Boolean" required="false" %>

<c:if test="${simple == null}">
<c:set var="simple" value="false"/>
</c:if>

<li class="post-item question-item ${question.isVisibleForModeratorAndNotAuthor(currentUser.current) ? 'highlight-post' : '' }">
<div class="post-information question-information">
Expand All @@ -14,12 +19,18 @@
<h3 class="title item-title main-thread-title question-title">
<tags:questionLinkFor question="${question}"/>
</h3>
<tags:tagsFor taggable="${question}"/>
<c:if test="${!simple}">
<tags:tagsFor taggable="${question}"/>
</c:if>
<div class="post-simple-information">
${question.views} <tags:pluralize key="post.list.view" count="${question.views}"/>
</div>
</div>
<tags:lastTouchFor touchable="${question}"/>
<c:if test="${!simple}">
<tags:lastTouchFor touchable="${question}"/>
</c:if>
</div>
<div class="${question.hasInteraction(currentUser.current) ? 'interaction' : ''}" title="<fmt:message key='user.interactions'/>"> </div>
<c:if test="${!simple}">
<div class="${question.hasInteraction(currentUser.current) ? 'interaction' : ''}" title="<fmt:message key='user.interactions'/>"> </div>
</c:if>
</li>
39 changes: 0 additions & 39 deletions src/main/webapp/WEB-INF/tags/questionSuggest.tag

This file was deleted.

27 changes: 27 additions & 0 deletions src/main/webapp/js/question-suggestions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
(function(){
var suggestionsContainer = $("#question-suggestions");

function getQuestionSuggestions(data) {
if (data.trim() == "") {
suggestionsContainer.hide();
return;
}

suggestionsContainer.show();
suggestionsContainer.find(".suggested-questions-list").html(data);
}

var timeoutId;
var questionTitle = $("#question-title");
questionTitle.keyup(function () {
var currentTypedValue = questionTitle.val();
if (currentTypedValue.length >= 5) {
clearTimeout(timeoutId);
timeoutId = setTimeout(function () {
$.get("/questionSuggestion", {query: currentTypedValue, limit: 2}, getQuestionSuggestions);
}, 1000);
} else {
suggestionsContainer.hide();
}
});
})();

0 comments on commit 88f149d

Please sign in to comment.