fix #497 : ignore request locale on api
This commit is contained in:
parent
e0e40ec1d4
commit
07c6d84e24
8 changed files with 61 additions and 14 deletions
|
@ -26,6 +26,7 @@ import java.util.Date;
|
|||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.regex.Matcher;
|
||||
|
@ -99,8 +100,8 @@ public class GsaApiManager extends BaseApiManager implements WebApiManager {
|
|||
boolean xmlDtd = false;
|
||||
try {
|
||||
final SearchRenderData data = new SearchRenderData();
|
||||
final SearchApiRequestParams params = new SearchApiRequestParams(request, fessConfig);
|
||||
searchService.search(request, params, data, OptionalThing.empty());
|
||||
final GsaRequestParams params = new GsaRequestParams(request, fessConfig);
|
||||
searchService.search(params, data, OptionalThing.empty());
|
||||
query = params.getQuery();
|
||||
final String execTime = data.getExecTime();
|
||||
final long allRecordCount = data.getAllRecordCount();
|
||||
|
@ -365,7 +366,7 @@ public class GsaApiManager extends BaseApiManager implements WebApiManager {
|
|||
}
|
||||
}
|
||||
|
||||
protected static class SearchApiRequestParams implements SearchRequestParams {
|
||||
protected static class GsaRequestParams implements SearchRequestParams {
|
||||
|
||||
private final HttpServletRequest request;
|
||||
|
||||
|
@ -375,7 +376,7 @@ public class GsaApiManager extends BaseApiManager implements WebApiManager {
|
|||
|
||||
private int pageSize = -1;
|
||||
|
||||
protected SearchApiRequestParams(final HttpServletRequest request, final FessConfig fessConfig) {
|
||||
protected GsaRequestParams(final HttpServletRequest request, final FessConfig fessConfig) {
|
||||
this.request = request;
|
||||
this.fessConfig = fessConfig;
|
||||
}
|
||||
|
@ -520,5 +521,15 @@ public class GsaApiManager extends BaseApiManager implements WebApiManager {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getAttribute(String name) {
|
||||
return request.getAttribute(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Locale getLocale() {
|
||||
return Locale.ROOT;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -143,8 +143,8 @@ public class JsonApiManager extends BaseApiManager {
|
|||
request.setAttribute(Constants.SEARCH_LOG_ACCESS_TYPE, Constants.SEARCH_LOG_ACCESS_TYPE_JSON);
|
||||
try {
|
||||
final SearchRenderData data = new SearchRenderData();
|
||||
final SearchApiRequestParams params = new SearchApiRequestParams(request, fessConfig);
|
||||
searchService.search(request, params, data, OptionalThing.empty());
|
||||
final JsonRequestParams params = new JsonRequestParams(request, fessConfig);
|
||||
searchService.search(params, data, OptionalThing.empty());
|
||||
query = params.getQuery();
|
||||
final String execTime = data.getExecTime();
|
||||
final String queryTime = Long.toString(data.getQueryTime());
|
||||
|
@ -673,7 +673,7 @@ public class JsonApiManager extends BaseApiManager {
|
|||
return Integer.toHexString(ch).toUpperCase();
|
||||
}
|
||||
|
||||
protected static class SearchApiRequestParams implements SearchRequestParams {
|
||||
protected static class JsonRequestParams implements SearchRequestParams {
|
||||
|
||||
private final HttpServletRequest request;
|
||||
|
||||
|
@ -683,7 +683,7 @@ public class JsonApiManager extends BaseApiManager {
|
|||
|
||||
private int pageSize = -1;
|
||||
|
||||
protected SearchApiRequestParams(final HttpServletRequest request, final FessConfig fessConfig) {
|
||||
protected JsonRequestParams(final HttpServletRequest request, final FessConfig fessConfig) {
|
||||
this.request = request;
|
||||
this.fessConfig = fessConfig;
|
||||
}
|
||||
|
@ -788,5 +788,15 @@ public class JsonApiManager extends BaseApiManager {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getAttribute(String name) {
|
||||
return request.getAttribute(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Locale getLocale() {
|
||||
return Locale.ROOT;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,8 +83,7 @@ public class SearchService {
|
|||
// Method
|
||||
// ==============
|
||||
|
||||
public void search(final HttpServletRequest request, final SearchRequestParams params, final SearchRenderData data,
|
||||
final OptionalThing<FessUserBean> userBean) {
|
||||
public void search(final SearchRequestParams params, final SearchRenderData data, final OptionalThing<FessUserBean> userBean) {
|
||||
final long requestedTime = systemHelper.getCurrentTimeAsLong();
|
||||
|
||||
final long startTime = System.currentTimeMillis();
|
||||
|
@ -119,7 +118,7 @@ public class SearchService {
|
|||
data.setFacetResponse(queryResponseList.getFacetResponse());
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final Set<String> highlightQueries = (Set<String>) request.getAttribute(Constants.HIGHLIGHT_QUERIES);
|
||||
final Set<String> highlightQueries = (Set<String>) params.getAttribute(Constants.HIGHLIGHT_QUERIES);
|
||||
if (highlightQueries != null) {
|
||||
final StringBuilder buf = new StringBuilder(100);
|
||||
highlightQueries.stream().forEach(q -> {
|
||||
|
@ -129,7 +128,7 @@ public class SearchService {
|
|||
}
|
||||
|
||||
queryResponseList.setExecTime(System.currentTimeMillis() - startTime);
|
||||
final NumberFormat nf = NumberFormat.getInstance(request.getLocale());
|
||||
final NumberFormat nf = NumberFormat.getInstance(params.getLocale());
|
||||
nf.setMaximumIntegerDigits(2);
|
||||
nf.setMaximumFractionDigits(2);
|
||||
String execTime;
|
||||
|
|
|
@ -124,7 +124,7 @@ public class AdminSearchlistAction extends FessAdminAction {
|
|||
final WebRenderData renderData = new WebRenderData();
|
||||
form.initialize();
|
||||
try {
|
||||
searchService.search(request, form, renderData, getUserBean());
|
||||
searchService.search(form, renderData, getUserBean());
|
||||
return asListHtml().renderWith(data -> {
|
||||
renderData.register(data);
|
||||
});
|
||||
|
|
|
@ -17,6 +17,7 @@ package org.codelibs.fess.app.web.admin.searchlist;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
|
@ -28,6 +29,7 @@ import org.codelibs.fess.entity.SearchRequestParams;
|
|||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.web.util.LaRequestUtil;
|
||||
import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
|
||||
|
||||
/**
|
||||
|
@ -138,4 +140,13 @@ public class ListForm implements SearchRequestParams, Serializable {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getAttribute(String name) {
|
||||
return LaRequestUtil.getRequest().getAttribute(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Locale getLocale() {
|
||||
return LaRequestUtil.getRequest().getLocale();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ package org.codelibs.fess.app.web.base;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
|
@ -28,6 +29,7 @@ import org.codelibs.fess.entity.SearchRequestParams;
|
|||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.web.util.LaRequestUtil;
|
||||
import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
|
||||
|
||||
public class SearchForm implements SearchRequestParams, Serializable {
|
||||
|
@ -133,4 +135,13 @@ public class SearchForm implements SearchRequestParams, Serializable {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getAttribute(String name) {
|
||||
return LaRequestUtil.getRequest().getAttribute(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Locale getLocale() {
|
||||
return LaRequestUtil.getRequest().getLocale();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -122,7 +122,7 @@ public class SearchAction extends FessSearchAction {
|
|||
form.lang = searchService.getLanguages(request, form);
|
||||
request.setAttribute(Constants.REQUEST_LANGUAGES, form.lang);
|
||||
final WebRenderData renderData = new WebRenderData();
|
||||
searchService.search(request, form, renderData, getUserBean());
|
||||
searchService.search(form, renderData, getUserBean());
|
||||
return asHtml(path_SearchJsp).renderWith(data -> {
|
||||
renderData.register(data);
|
||||
// favorite or screenshot
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package org.codelibs.fess.entity;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
public interface SearchRequestParams {
|
||||
|
@ -39,4 +40,8 @@ public interface SearchRequestParams {
|
|||
|
||||
String[] getExtraQueries();
|
||||
|
||||
Object getAttribute(String name);
|
||||
|
||||
Locale getLocale();
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue