package mircoders.servlet;
+import gnu.regexp.RE;
+import gnu.regexp.REMatch;
+
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Set;
import java.util.Vector;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpUtils;
-
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.net.smtp.SMTPClient;
-import org.apache.commons.net.smtp.SMTPReply;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.queryParser.QueryParser;
-import org.apache.lucene.search.Hits;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.Searcher;
-import org.apache.struts.util.MessageResources;
-import gnu.regexp.RE;
-import gnu.regexp.REMatch;
import mir.entity.Entity;
import mir.generator.Generator;
import mircoders.search.ImagesSearchTerm;
import mircoders.search.KeywordSearchTerm;
import mircoders.search.TextSearchTerm;
-import mircoders.search.TopicSearchTerm;
import mircoders.search.TopicMatrixSearchTerm;
+import mircoders.search.TopicSearchTerm;
import mircoders.search.UnIndexedSearchTerm;
import mircoders.search.VideoSearchTerm;
import mircoders.storage.DatabaseComment;
import mircoders.storage.DatabaseLanguage;
import mircoders.storage.DatabaseTopics;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.net.smtp.SMTPClient;
+import org.apache.commons.net.smtp.SMTPReply;
+import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.queryParser.QueryParser;
+import org.apache.lucene.search.Hits;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.Searcher;
+import org.apache.struts.util.MessageResources;
+
/*
* ServletModuleOpenIndy -
* is the open-access-servlet, which is responsible for
* open-postings to the newswire
*
* @author mir-coders group
- * @version $Id: ServletModuleOpenIndy.java,v 1.89.2.2 2003/06/03 20:58:30 john Exp $
+ * @version $Id: ServletModuleOpenIndy.java,v 1.89.2.8 2003/10/23 14:55:25 rk Exp $
*
*/
Map extraInfo = new HashMap();
extraInfo.put("languagePopUpData", DatabaseLanguage.getInstance().getPopupData());
- extraInfo.put("themenPopupData", topicsModule.getTopicsAsSimpleList());
+ extraInfo.put("themenPopupData", DatabaseTopics.getInstance().getPopupData());
extraInfo.put("topics", topicsModule.getTopicsList());
deliver(req, res, mergeData, extraInfo, postingFormTemplate);
private static final String SESSION_REQUEST_KEY="sessionid";
/**
+ * Selects the language for the response.
+ *
+ * @param session
+ * @param aRequest
+ */
+
+ protected Locale getResponseLocale(HttpSession aSession, HttpServletRequest aRequest) {
+ String requestLanguage = aRequest.getParameter("language");
+ String sessionLanguage = (String) aSession.getAttribute("language");
+ String acceptLanguage = aRequest.getLocale().getLanguage();
+ String defaultLanguage = configuration.getString("Mir.Login.DefaultLanguage", "en");
+
+ String language = requestLanguage;
+
+ if (language==null)
+ language = sessionLanguage;
+
+ if (language==null)
+ language = acceptLanguage;
+
+ if (language==null)
+ language = defaultLanguage;
+
+ aSession.setAttribute("language", language);
+
+ return new Locale(language, "");
+ }
+
+ /**
* Dispatch method for open sessions: a flexible extensible and customizable way
* for open access. Can be used for postings, but also for lots of other stuff.
*
Session session = new HTTPAdapters.HTTPSessionAdapter(aRequest.getSession());
SimpleResponse response = new SimpleResponse(
- ServletHelper.makeGenerationData(aResponse, new Locale[] {getLocale(aRequest), getFallbackLocale(aRequest)},
+ ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getResponseLocale(aRequest.getSession(), aRequest), getFallbackLocale(aRequest)},
"bundles.open"));
- response.setResponseValue("actionURL", aResponse.encodeURL(HttpUtils.getRequestURL(aRequest).toString())+"?"+SESSION_REQUEST_KEY+"="+aRequest.getSession().getId());
+ response.setResponseValue("actionURL", aResponse.encodeURL(MirGlobal.config().getString("RootUri") + "/servlet/OpenMir")+"?"+SESSION_REQUEST_KEY+"="+aRequest.getSession().getId());
SessionHandler handler = MirGlobal.localizer().openPostings().getOpenSessionHandler(request, session);
String theEmailText;
if (MirGlobal.mruCache().hasObject(theCacheKey)){
- logger.info("fetching email text for article "+aid+" from cache");
- theEmailText = (String) MirGlobal.mruCache().getObject(theCacheKey);
+ logger.info("fetching email text for article "+aid+" from cache");
+ theEmailText = (String) MirGlobal.mruCache().getObject(theCacheKey);
}
else {
EntityContent contentEnt;
}
try {
- mergeData.put("topics", topicsModule.getTopicsAsSimpleList());
+ mergeData.put("topics", DatabaseTopics.getInstance().getPopupData());
}
catch (Throwable e) {
logger.debug("Can't get topics: " + e.toString());
public void deliver(PrintWriter anOutputWriter, HttpServletRequest aRequest, HttpServletResponse aResponse, Map aData, Map anExtra, String aGenerator)
throws ServletModuleFailure {
try {
- Map responseData = ServletHelper.makeGenerationData(aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}, "bundles.open");
+ Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}, "bundles.open");
responseData.put("data", aData);
responseData.put("extra", anExtra);
public void deliver(PrintWriter anOutputWriter, HttpServletRequest aRequest, HttpServletResponse aResponse, Map aData, Map anExtra, String aGenerator,String aLocaleString)
throws ServletModuleFailure {
try {
- Map responseData = ServletHelper.makeGenerationData(aResponse, new Locale[] { new Locale(aLocaleString,""), getFallbackLocale(aRequest)}, "bundles.open");
+ Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { new Locale(aLocaleString,""), getFallbackLocale(aRequest)}, "bundles.open");
responseData.put("data", aData);
responseData.put("extra", anExtra);