public static String getLanguageCode(HttpServletRequest request) { String context = ServletUtilities.getContext(request); // worst case scenario default to English String langCode = "en"; // try to detect a default if defined if (CommonConfiguration.getProperty("defaultLanguage", context) != null) { langCode = CommonConfiguration.getProperty("defaultLanguage", context); } ArrayList<String> supportedLanguages = new ArrayList<String>(); if (CommonConfiguration.getSequentialPropertyValues("language", context) != null) { supportedLanguages = CommonConfiguration.getSequentialPropertyValues("language", context); } // if specified directly, always accept the override if (request.getParameter("langCode") != null) { if (supportedLanguages.contains(request.getParameter("langCode"))) { return request.getParameter("langCode"); } } // the request cookie is the next thing we check. this should be the primary means of figuring // langCode out Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if ("wildbookLangCode".equals(cookie.getName())) { if (supportedLanguages.contains(cookie.getValue())) { return cookie.getValue(); } } } } // finally, we will check the URL vs values defined in context.properties to see if we can set // the right context // TBD - future - detect browser supported language codes and locale from the HTTPServletRequest // object return langCode; }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // set up for response response.setContentType("text/html"); PrintWriter out = response.getWriter(); if ((request.getParameter("persistenceID") != null) && (!request.getParameter("persistenceID").equals(""))) { Shepherd myShepherd = new Shepherd(); Relationship rel = new Relationship(); myShepherd.beginDBTransaction(); Object identity = myShepherd .getPM() .newObjectIdInstance( org.ecocean.social.Relationship.class, request.getParameter("persistenceID")); rel = (Relationship) myShepherd.getPM().getObjectById(identity); if (rel != null) { myShepherd.getPM().deletePersistent(rel); myShepherd.commitDBTransaction(); myShepherd.beginDBTransaction(); if (rel.getRelatedSocialUnitName() != null) { // delete the community too if it has no relationships if (myShepherd.getAllRelationshipsForCommunity(rel.getRelatedSocialUnitName()).size() == 0) { SocialUnit myComm = myShepherd.getCommunity(rel.getRelatedSocialUnitName()); myShepherd.getPM().deletePersistent(myComm); myShepherd.commitDBTransaction(); myShepherd.beginDBTransaction(); } } } myShepherd.commitDBTransaction(); myShepherd.closeDBTransaction(); myShepherd = null; // output success statement out.println(ServletUtilities.getHeader(request)); out.println( "<strong>Success:</strong> The relationship of type " + request.getParameter("type") + " between " + request.getParameter("markedIndividualName1") + " and " + request.getParameter("markedIndividualName2") + " was deleted."); out.println( "<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/individuals.jsp?number=" + request.getParameter("markedIndividualName1") + "\">Return to Marked Individual " + request.getParameter("markedIndividualName1") + "</a></p>\n"); out.println( "<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/individuals.jsp?number=" + request.getParameter("markedIndividualName2") + "\">Return to Marked Individual " + request.getParameter("markedIndividualName2") + "</a></p>\n"); out.println(ServletUtilities.getFooter()); } else { out.println(ServletUtilities.getHeader(request)); out.println("<strong>Failure:</strong> I did not have all of the information required."); out.println( "<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/individuals.jsp?number=" + request.getParameter("markedIndividualName1") + "\">Return to Marked Individual " + request.getParameter("markedIndividualName1") + "</a></p>\n"); out.println( "<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/individuals.jsp?number=" + request.getParameter("markedIndividualName2") + "\">Return to Marked Individual " + request.getParameter("markedIndividualName2") + "</a></p>\n"); out.println(ServletUtilities.getFooter()); } out.close(); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Shepherd myShepherd = new Shepherd(); // set up for response response.setContentType("text/html"); PrintWriter out = response.getWriter(); boolean locked = false; String email = "None", encounterNumber = "None", shark = "None"; email = request.getParameter("email"); encounterNumber = request.getParameter("number"); myShepherd.beginDBTransaction(); if ((request.getParameter("number") != null) && (myShepherd.isEncounter(request.getParameter("number"))) && (email != null) && (!email.equals("")) && (email.indexOf("@") != -1)) { Encounter enc = myShepherd.getEncounter(encounterNumber); // int positionInList=0; try { Vector interested = enc.getInterestedResearchers(); interested.add(email); } catch (Exception le) { locked = true; myShepherd.rollbackDBTransaction(); } if (!locked) { myShepherd.commitDBTransaction(); out.println(ServletUtilities.getHeader(request)); out.println( "<strong>Success!</strong> I have successfully added the tracking of encounter#" + encounterNumber + " for e-mail address " + email + "."); out.println( "<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/encounters/encounter.jsp?number=" + encounterNumber + "\">Return to encounter " + encounterNumber + "</a></p>\n"); out.println(ServletUtilities.getFooter()); Vector e_images = new Vector(); String message = "This is a confirmation that e-mail tracking of data changes to encounter " + encounterNumber + " has now started. You should receive e-mail updates any time changes to this encounter are made."; NotificationMailer mailer = new NotificationMailer( CommonConfiguration.getMailHost(), CommonConfiguration.getAutoEmailAddress(), email, ("Encounter data tracking started for encounter: " + encounterNumber), message, e_images); } else { out.println(ServletUtilities.getHeader(request)); out.println( "<strong>Failure!</strong> This encounter is currently being modified by another user, or the database is locked. Please wait a few seconds before trying to add this e-mail address for tracking again."); out.println( "<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/encounters/encounter.jsp?number=" + encounterNumber + "\">Return to encounter " + encounterNumber + "</a></p>\n"); out.println(ServletUtilities.getFooter()); } } else if ((request.getParameter("individual") != null) && (myShepherd.isMarkedIndividual(request.getParameter("individual"))) && (email != null) && (!email.equals("")) && (email.indexOf("@") != -1)) { shark = request.getParameter("individual"); MarkedIndividual sharkie = myShepherd.getMarkedIndividual(shark); // myShepherd.beginDBTransaction(); // int positionInList=0; try { Vector interested = sharkie.getInterestedResearchers(); interested.add(email); } catch (Exception le) { locked = true; myShepherd.rollbackDBTransaction(); } if (!locked) { myShepherd.commitDBTransaction(); out.println(ServletUtilities.getHeader(request)); out.println( "<strong>Success!</strong> I have successfully added the tracking of " + shark + " for e-mail address " + email + "."); out.println( "<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/individuals.jsp?number=" + shark + "\">Return to " + shark + "</a></p>\n"); out.println(ServletUtilities.getFooter()); Vector e_images = new Vector(); String message = "This is a confirmation that e-mail tracking of data changes to " + shark + " has now started. You should receive e-mail updates any time changes to this record are made."; NotificationMailer mailer = new NotificationMailer( CommonConfiguration.getMailHost(), CommonConfiguration.getAutoEmailAddress(), email, ("Data tracking started for encounter: " + shark), message, e_images); } else { out.println(ServletUtilities.getHeader(request)); out.println( "<strong>Failure!</strong> This record is currently being modified by another user, or the database is locked. Please wait a few seconds before trying to add this e-mail address for tracking again."); out.println( "<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/individuals.jsp?number=" + shark + "\">Return to " + shark + "</a></p>\n"); out.println(ServletUtilities.getFooter()); } } else { myShepherd.rollbackDBTransaction(); out.println(ServletUtilities.getHeader(request)); out.println( "<strong>Error:</strong> I was unable to add your e-mail address to the tracking list. I cannot find the record that you indicated in the database, or your e-mail address is invalid."); out.println(ServletUtilities.getFooter()); } out.close(); myShepherd.closeDBTransaction(); }