1 22 package org.cofax.cms; 23 24 import org.cofax.*; 25 import javax.servlet.*; 26 import javax.servlet.http.*; 27 import java.io.*; 28 import java.util.*; 29 import java.text.*; 30 31 41 42 public class CofaxToolsNavigation { 43 44 48 public static String mode; 49 50 54 private static String toHex(byte[] digest) { 55 StringBuffer buf = new StringBuffer (); 56 for (int i = 0; i < digest.length; i++) { 57 buf.append(Integer.toHexString(0x0100 + (digest[i] & 0x00ff)).substring(1)); 58 } 59 return buf.toString(); 60 } 61 62 76 public static void includeResource(CofaxPage page, String url, ServletRequest req, ServletResponse res, HttpSession session) { 77 78 CofaxToolsUtil.log("IncludeResource URL : " + url); 79 80 HashMap userPreviousArticlesHash = new HashMap(); 81 try { 82 CofaxToolsUser user = (CofaxToolsUser) (session.getAttribute("user")); 84 CofaxToolsUtil.log("Session user : OK"); 85 86 String userName = (String ) user.userInfoHash.get("USERNAME"); 87 CofaxToolsUtil.log("user name : " + userName); 88 String userFirstName = (String ) user.userInfoHash.get("FIRSTNAME"); 89 CofaxToolsUtil.log("user firstname : " + userFirstName); 90 String userLastName = (String ) user.userInfoHash.get("LASTNAME"); 91 CofaxToolsUtil.log("user lastname : " + userLastName); 92 String workingPubDesc = user.workingPubDesc; 93 CofaxToolsUtil.log("user pubdesc : " + workingPubDesc); 94 String workingPubName = user.workingPubName; 95 CofaxToolsUtil.log("user pubname : " + workingPubName); 96 String userID = (String ) user.userInfoHash.get("USERID"); 97 CofaxToolsUtil.log("user id : " + userID); 98 99 CofaxToolsUtil.log("putting into glossary ... "); 100 page.putGlossaryValue("user:userName", userName); 101 page.putGlossaryValue("user:userFirstName", userFirstName); 102 page.putGlossaryValue("user:userLastName", userLastName); 103 page.putGlossaryValue("user:workingPubDesc", workingPubDesc); 104 page.putGlossaryValue("user:workingPubName", workingPubName); 105 page.putGlossaryValue("user:userID", userID); 106 107 for (Iterator i = CofaxToolsServlet.configGlossary.keySet().iterator(); i.hasNext();) { 109 String key2 = i.next().toString(); 110 String value2 = CofaxToolsServlet.configGlossary.get(key2).toString(); 111 page.putGlossaryValue(key2, value2); 112 } 113 114 CofaxToolsUtil.log("done. (with config too)"); 115 116 userPreviousArticlesHash = user.userPreviousArticlesHash; 117 if (userPreviousArticlesHash.size() > 1) { 118 String previousArticles = CofaxToolsUtil.createSelect("select", userPreviousArticlesHash, "", "onChange=\"leapTo();\""); 119 page.putGlossaryValue("user:previousArticles", previousArticles); 120 } 121 } catch (java.lang.NullPointerException np) { 122 CofaxToolsUtil.log("CofaxToolsUtil fillTemplate: No user object or portions missing."); 123 125 } 126 127 req.setAttribute("cofaxPage", page); 128 129 try { 130 RequestDispatcher dispatcher = req.getRequestDispatcher(url); 131 dispatcher.include(req, res); 132 133 } catch (ServletException e) { 134 System.err.println("ERROR in CofaxToolsNavigation.includeResource: " + url); 135 System.err.println(e); 136 e.printStackTrace(); 137 } catch (IOException e) { 138 System.err.println("ERROR in CofaxToolsNavigation.includeResource: " + url); 139 System.err.println(e); 140 e.printStackTrace(); 141 } catch (Exception e) { 142 System.err.println("ERROR in CofaxToolsNaviagation.includeResource: " + url); 143 System.err.println(e); 144 e.printStackTrace(); 145 } 146 return; 147 } 148 149 169 public static String navigate(DataStore db, String NpathInfo, String NqueryString, HttpSession session, HttpServletRequest req, HttpServletResponse res) { 170 171 String content; 172 boolean isLoggedIn = true; 173 String workingPub = ""; 174 boolean hasPermission = true; 175 mode = req.getParameter("mode"); 176 177 CofaxPage page = new CofaxPage(); 178 page.reset(); 179 Glossary cofaxGlossary = new Glossary(); 180 page.setGlossary(cofaxGlossary); 181 page.setTemplateLoader(null); 182 page.setDataStore(db); 183 page.putGlossaryValue("system:toolsPath", CofaxToolsServlet.toolsPath); 184 185 CofaxToolsUtil.log("Starting servlet controler , mode = " + mode); 188 191 String contentType = (String ) req.getHeader("content-type"); 192 if (contentType != null) { 193 if (contentType.indexOf("multipart/form-data") > -1) { 194 try { 195 MultipartRequest parser = new MultipartRequest(req.getContentType(), req.getContentLength(), req.getInputStream(), 196 CofaxToolsServlet.fileTransferFolder); 197 Enumeration en = parser.getParameterNames(); 198 while (en.hasMoreElements()) { 199 String key = (String ) en.nextElement(); 200 req.removeAttribute(key); 201 req.setAttribute(key, parser.getURLParameter(key)); 202 } 203 mode = (String ) req.getAttribute("mode"); 204 } catch (java.io.IOException e) { 205 CofaxToolsUtil.log("CofaxToolsNavigation navigate ERROR: " + e); 206 } 207 } 208 } 209 210 try { 212 CofaxToolsUser userU = (CofaxToolsUser) session.getAttribute("user"); 213 workingPub = userU.workingPub; 214 } catch (java.lang.NullPointerException e) { 215 isLoggedIn = false; 216 } catch (java.lang.ClassCastException e) { 217 isLoggedIn = false; 218 } 219 220 if (mode == null) { 222 if (isLoggedIn == false) { 224 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "welcomeMessage")); 225 page.putGlossaryValue("system:highLightTab", ""); 226 includeResource(page, "" + CofaxToolsServlet.templatePath + "login.jsp", req, res, session); return (""); 230 } else { 233 if (workingPub == null) { 236 CofaxToolsUser user = (CofaxToolsUser) session.getAttribute("user"); 237 String selectPublication = CofaxToolsUtil.createSelect("PUBLICATION", user.userPubDescPubIDHash, (String ) user.userInfoHash.get("HOMEPUB")); 238 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "choosepublication")); 239 page.putGlossaryValue("system:highLightTab", "login_change_publication"); 240 page.putGlossaryValue("system:selectPublication", selectPublication); 241 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectPublication.jsp", req, res, session); 245 return (""); 246 } 247 else { 250 CofaxToolsUser user = (CofaxToolsUser) session.getAttribute("user"); 251 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "pleaseMakeSelection")); 252 page.putGlossaryValue("getMySavedSearches", CofaxToolsUtil.getMySavedSearches(db, (String ) user.userInfoHash.get("USERID"))); 253 page.putGlossaryValue("getMyLastArticles", CofaxToolsUtil.getMyLastArticles(db, (String ) user.workingPubName, (String ) user.userInfoHash 254 .get("USERNAME"))); 255 page.putGlossaryValue("getArticlesToPublish", CofaxToolsUtil.getArticlesToPublish(db, (String ) user.workingPubName, 256 (String ) user.userInfoHash.get("USERID"))); 257 page.putGlossaryValue("getMyArticlesLocked", CofaxToolsLockUnlock.getMyArticlesLocked(db, (String ) user.workingPubName, 258 (String ) user.userInfoHash.get("USERID"))); 259 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); return (""); 263 } 264 } 265 } 266 else if ((isLoggedIn == true) || (mode.equals("login")) || (mode.equals("login_confirm_publication"))) { 270 if (mode.equals("login")) { 271 String login = req.getParameter("login"); 272 String password = req.getParameter("password"); 273 return (CofaxToolsLogin.login(db, req, session, login, password, res, page)); 274 } else if (mode.equals("login_confirm_publication")) { 275 CofaxToolsUser user = (CofaxToolsUser) session.getAttribute("user"); 276 String askingPub = req.getParameter("PUBLICATION"); 277 if (user.setUserWorkingPubConfigElements(db, session, askingPub)) { 278 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "pleaseMakeSelection")); 279 page.putGlossaryValue("getMySavedSearches", CofaxToolsUtil.getMySavedSearches(db, (String ) user.userInfoHash.get("USERID"))); 280 page.putGlossaryValue("getMyLastArticles", CofaxToolsUtil.getMyLastArticles(db, (String ) user.workingPubName, (String ) user.userInfoHash 281 .get("USERNAME"))); 282 page.putGlossaryValue("getArticlesToPublish", CofaxToolsUtil.getArticlesToPublish(db, (String ) user.workingPubName, 283 (String ) user.userInfoHash.get("USERID"))); 284 page.putGlossaryValue("getMyArticlesLocked", CofaxToolsLockUnlock.getMyArticlesLocked(db, (String ) user.workingPubName, 285 (String ) user.userInfoHash.get("USERID"))); 286 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); return (""); 290 } else { 291 String selectPublication = CofaxToolsUtil.createSelect("PUBLICATION", user.userPubDescPubIDHash, (String ) user.userInfoHash.get("HOMEPUB")); 292 String pubName = CofaxToolsUtil.getPubDescFromID(db, askingPub); 293 String message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "noPublicationRights") + " " + pubName; 294 page.putGlossaryValue("system:message", message); 295 page.putGlossaryValue("system:highLightTab", "login_change_publication"); 296 page.putGlossaryValue("system:selectPublication", selectPublication); 297 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectPublication.jsp", req, res, session); 301 return (""); 302 } 303 } 304 hasPermission = CofaxToolsSecurity.checkPermissions(db, session, mode); 307 if (hasPermission == true) { 308 HashMap htTime = CofaxToolsUtil.getDateInfo(); 309 int year = Integer.parseInt((String ) htTime.get("year")); 310 int month = Integer.parseInt((String ) htTime.get("month")); 311 int day = Integer.parseInt((String ) htTime.get("day")); 312 int hour = Integer.parseInt((String ) htTime.get("hour")); 313 int minute = Integer.parseInt((String ) htTime.get("minute")); 314 int second = Integer.parseInt((String ) htTime.get("second")); 315 String amPm = (String ) htTime.get("amPm"); 316 CofaxToolsUser user = (CofaxToolsUser) session.getAttribute("user"); 317 if (mode.equals("login_change_publication")) { 318 if (user.userPubDescPubIDHash == null) { 319 System.err.println("user.userPubDescPubIDHash NULL"); 320 } 321 String selectPublication = CofaxToolsUtil.createSelect("PUBLICATION", user.userPubDescPubIDHash, (String ) user.userInfoHash.get("HOMEPUB")); 322 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "choosepublication")); 323 page.putGlossaryValue("system:highLightTab", "admin"); 324 page.putGlossaryValue("system:selectPublication", selectPublication); 325 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectPublication.jsp", req, res, session); 329 return (""); 330 } else if ((mode.equals("admin")) || (mode.equals("admin_clear_cache")) || (mode.equals("admin_reset_servlet")) 331 || (mode.equals("admin_update_lifecycles"))) { 332 if (mode.equals("admin_clear_cache")) { 333 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 335 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 336 CofaxToolsUtil.log("CofaxToolsNavigation navigate: Clearing database cache hash from admin_clear_cache."); 337 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "cacheCleared")); 338 } else if (mode.equals("admin_reset_servlet")) { 339 boolean reset = CofaxToolsUtil.resetServlet(db); 340 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "servletReset")); 341 } else if (mode.equals("admin_update_lifecycles")) { 342 CofaxToolsLifeCycle lf = new CofaxToolsLifeCycle(); 343 String rt = lf.updatePublication(db, user.workingPubName); 344 int x1 = lf.count_articles_disabled; 345 int x2 = lf.count_articles_enabled; 346 page.putGlossaryValue("system:message", x1 + " articles disabled and " + x2 + " articles enabled for publication '" 347 + user.workingPubName + "'."); 348 } else { 349 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_chooseadminoption")); 350 } 351 352 CofaxToolsUtil.log("Testing external ressources"); 356 HashMap htModules = new HashMap(); 357 String tagModules = "select * from tblmodules where enabled=1"; 358 List listModules = CofaxToolsDbUtils.getPackageData(db, htModules, tagModules); 359 StringBuffer sbModules = new StringBuffer (); 360 while (listModules.size() > 0) { 361 HashMap hashModules = (HashMap) listModules.get(0); 362 String moduleModeInit = (String ) hashModules.get("MODULEMODEINIT"); 363 String moduleName = (String ) hashModules.get("MODULENAME"); 364 sbModules.append("<li><a HREF='?mode=" + moduleModeInit + "'>" + moduleName + "</a>"); 365 listModules.remove(0); 366 } 367 page.putGlossaryValue("system:modulesList", sbModules.toString()); 368 369 page.putGlossaryValue("system:highLightTab", "admin"); 370 includeResource(page, "" + CofaxToolsServlet.templatePath + "admin.jsp", req, res, session); 374 return (""); 375 } else if ((mode.equals("admin_edit_user")) || (mode.equals("admin_get_user_info")) || (mode.equals("admin_set_user_info"))) { 376 377 String limit = (String ) req.getParameter("limit"); 378 if ((limit != null) && (!(limit.equals("")))) { 379 page.putGlossaryValue("request:limit", limit); 380 } else { 381 limit = ""; 382 } 383 384 HashMap ht = null; 385 String selectUser = ""; 386 String checkBoxGroupsTable = ""; 387 HashMap htGroups = CofaxToolsUtil.getGroups(db, session); 388 String selectPublication = ""; 389 String message = ""; 390 if (mode.equals("admin_get_user_info")) { 391 String userID = req.getParameter("selectUser"); 392 ht = CofaxToolsUtil.getUserInfo(db, userID); 393 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "youreediting") + ht.get("FIRSTNAME") + " " + ht.get("LASTNAME"); 394 selectUser = CofaxToolsUtil.getUsersSelect(db, session, userID); 395 Vector v = CofaxToolsUtil.getUserGroups(db, userID); 396 checkBoxGroupsTable = CofaxToolsUtil.createCheckBoxTable(htGroups, v, "group"); 397 selectPublication = CofaxToolsUtil.getPublicationSelectID(db, session, (String ) ht.get("HOMEPUB"), "PUBLICATION"); 398 ht.put("getRightSectionCheckboxTable", CofaxToolsUtil.getRightSectionCheckboxTable(db, userID, (String ) user.workingPubName, limit)); 399 } else if (mode.equals("admin_edit_user")) { 400 ht = new HashMap(); 401 selectUser = CofaxToolsUtil.getUsersSelect(db, session); 402 checkBoxGroupsTable = CofaxToolsUtil.createCheckBoxTable(htGroups, "group"); 403 selectPublication = CofaxToolsUtil.getPublicationSelectID(db, session, "PUBLICATION"); 404 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_edituser"); 405 } else if (mode.equals("admin_set_user_info")) { 406 ht = new HashMap(); 407 message = CofaxToolsUser.setUserInfo(db, req); 408 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 409 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 410 selectUser = CofaxToolsUtil.getUsersSelect(db, session); 411 checkBoxGroupsTable = CofaxToolsUtil.createCheckBoxTable(htGroups, "group"); 412 selectPublication = CofaxToolsUtil.getPublicationSelectID(db, session, "PUBLICATION"); 413 CofaxToolsUtil.log("CofaxToolsNavigation navigate: Clearing database cache hash from admin_set_user_info."); 414 415 } 416 ht.put("selectUser", selectUser); 417 ht.put("checkBoxGroupsTable", checkBoxGroupsTable); 418 ht.put("selectPublication", selectPublication); 419 ht.put("message", message); 420 page.addToGlossary(ht); 421 page.putGlossaryValue("system:message", message); 422 page.putGlossaryValue("system:highLightTab", "admin"); 423 includeResource(page, "" + CofaxToolsServlet.templatePath + "editUser.jsp", req, res, session); return (""); 427 428 } else if ((mode.equals("admin_get_mycount")) || (mode.equals("admin_set_mycount")) || (mode.equals("article_search_delete"))) { 429 HashMap ht = null; 430 String selectUser = ""; 431 String checkBoxGroupsTable = ""; 432 HashMap htGroups = CofaxToolsUtil.getGroups(db, session); 433 String selectPublication = ""; 434 String message = ""; 435 if ((mode.equals("admin_get_mycount")) || (mode.equals("article_search_delete"))) { 436 437 String userID = (String ) user.userInfoHash.get("USERID"); 438 if (mode.equals("article_search_delete")) { 439 message = CofaxToolsUser.deleteSavedSearch(db, req); 440 ht = CofaxToolsUtil.getUserInfo(db, userID); 441 ht.put("message", message); 442 } 443 if (mode.equals("admin_get_mycount")) { 444 ht = CofaxToolsUtil.getUserInfo(db, userID); 445 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "youreediting") + " " + ht.get("FIRSTNAME") + " " + ht.get("LASTNAME"); 446 ht.put("message", message); 447 } 448 selectUser = CofaxToolsUtil.getUsersSelect(db, session, userID); 449 Vector v = CofaxToolsUtil.getUserGroups(db, userID); 450 checkBoxGroupsTable = CofaxToolsUtil.createCheckBoxTable(htGroups, v, "group"); 451 selectPublication = CofaxToolsUtil.getPublicationSelectID(db, session, (String ) ht.get("HOMEPUB"), "PUBLICATION"); 452 ht = CofaxToolsUtil.convertBooleanToChecked(ht, "USEHTMLEDITOR"); 453 ht.put("selectPublication", selectPublication); 454 page.addToGlossary(ht); 455 page.putGlossaryValue("system:message", message); 456 page.putGlossaryValue("getMySavedSearches", CofaxToolsUtil.getMySavedSearches(db, userID)); 457 page.putGlossaryValue("getMyLastArticles", CofaxToolsUtil.getMyLastArticles(db, (String ) user.workingPubName, 458 (String ) user.userInfoHash.get("USERNAME"))); 459 page.putGlossaryValue("getArticlesToPublish", CofaxToolsUtil.getArticlesToPublish(db, (String ) user.workingPubName, userID)); 460 page.putGlossaryValue("getMyArticlesLocked", CofaxToolsLockUnlock.getMyArticlesLocked(db, (String ) user.workingPubName, 461 (String ) user.userInfoHash.get("USERID"))); 462 page.putGlossaryValue("system:highLightTab", "admin"); 463 includeResource(page, "" + CofaxToolsServlet.templatePath + "editMyCount.jsp", req, res, session); 467 } else if (mode.equals("admin_set_mycount")) { 468 ht = new HashMap(); 469 message = CofaxToolsUser.setMyCountInfo(db, req); 470 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 471 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 472 selectPublication = CofaxToolsUtil.getPublicationSelectID(db, session, "PUBLICATION"); 473 CofaxToolsUtil.log("CofaxToolsNavigation navigate: Clearing database cache hash from admin_set_user_info."); 474 ht.put("message", message); 475 page.addToGlossary(ht); 476 page.putGlossaryValue("system:message", message); 477 page.putGlossaryValue("system:highLightTab", "admin"); 478 page.putGlossaryValue("getMySavedSearches", CofaxToolsUtil.getMySavedSearches(db, (String ) user.userInfoHash.get("USERID"))); 479 page.putGlossaryValue("getMyLastArticles", CofaxToolsUtil.getMyLastArticles(db, (String ) user.workingPubName, 480 (String ) user.userInfoHash.get("USERNAME"))); 481 page.putGlossaryValue("getArticlesToPublish", CofaxToolsUtil.getArticlesToPublish(db, (String ) user.workingPubName, 482 (String ) user.userInfoHash.get("USERID"))); 483 page.putGlossaryValue("getMyArticlesLocked", CofaxToolsLockUnlock.getMyArticlesLocked(db, (String ) user.workingPubName, 484 (String ) user.userInfoHash.get("USERID"))); 485 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); } 489 return (""); 490 491 } else if ((mode.equals("admin_edit_groups")) || (mode.equals("admin_get_group_info")) || (mode.equals("admin_set_group_info"))) { 492 493 HashMap ht = null; 494 String selectGroup = ""; 495 String selectGroupType = ""; 496 String multipleSelectPublicationsTable = ""; 497 String multipleSelectNonPublicationsTable = ""; 498 String message = ""; 499 if (mode.equals("admin_get_group_info")) { 500 String groupID = req.getParameter("selectGroup"); 501 selectGroup = CofaxToolsUtil.getGroupsSelectID(db, groupID, session); 502 ht = CofaxToolsUtil.getGroupInfo(db, groupID); 503 ht = CofaxToolsUtil.escapeHTML(ht); 504 selectGroupType = CofaxToolsUtil.getGroupTypesSelectID(db, (String ) ht.get("GROUPTYPE")); 505 HashMap selectedPublications = CofaxToolsUtil.getGroupsPublications(db, groupID); 506 multipleSelectPublicationsTable = CofaxToolsUtil.createMultipleSelect("selectedPublications", selectedPublications, 5); 507 508 HashMap nonSelectPubs = CofaxToolsUtil.getGroupsNonPublications(db, groupID); 509 multipleSelectNonPublicationsTable = CofaxToolsUtil.createMultipleSelect("nonSelectPubs", nonSelectPubs, 5); 510 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "youreediting") + " " + ht.get("GROUPNAME"); 511 } else if (mode.equals("admin_edit_groups")) { 512 ht = new HashMap(); 513 selectGroup = CofaxToolsUtil.getGroupsSelectID(db, session); 514 selectGroupType = CofaxToolsUtil.getGroupTypesSelectID(db); 515 HashMap temp = new HashMap(); 516 multipleSelectPublicationsTable = CofaxToolsUtil.createMultipleSelect("selectedPublications", temp, 5); 517 HashMap publications = CofaxToolsUtil.getPublications(db); 518 multipleSelectNonPublicationsTable = CofaxToolsUtil.createMultipleSelect("nonSelectPubs", publications, 5); 519 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "edit_groups_message"); 520 } 521 if (mode.equals("admin_set_group_info")) { 522 message = CofaxToolsDbUtils.setGroupInfo(db, req); 523 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 524 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 525 selectGroup = CofaxToolsUtil.getGroupsSelectID(db, session); 526 ht = new HashMap(); 527 selectGroupType = CofaxToolsUtil.getGroupTypesSelectID(db); 528 HashMap temp = new HashMap(); 529 multipleSelectPublicationsTable = CofaxToolsUtil.createMultipleSelect("selectedPublications", temp, 5); 530 HashMap publications = CofaxToolsUtil.getPublications(db); 531 multipleSelectNonPublicationsTable = CofaxToolsUtil.createMultipleSelect("nonSelectPubs", publications, 5); 532 533 } 534 String limit = (String ) req.getParameter("limit"); 535 if ((limit != null) && (!(limit.equals("")))) { 536 page.putGlossaryValue("request:limit", limit); 537 } 538 539 ht.put("selectGroup", selectGroup); 540 ht.put("selectGroupType", selectGroupType); 541 ht.put("multipleSelectPublicationsTable", multipleSelectPublicationsTable); 542 ht.put("multipleSelectNonPublicationsTable", multipleSelectNonPublicationsTable); 543 ht.put("message", message); 544 page.addToGlossary(ht); 545 page.putGlossaryValue("system:message", message); 546 page.putGlossaryValue("system:highLightTab", "admin"); 547 includeResource(page, "" + CofaxToolsServlet.templatePath + "editGroups.jsp", req, res, session); 551 return (""); 552 } else if ((mode.equals("admin_edit_group_types")) || (mode.equals("admin_get_group_type_info")) || (mode.equals("admin_set_group_type_info"))) { 555 HashMap ht = null; 556 String selectGroupType = ""; 557 String message = ""; 558 if (mode.equals("admin_get_group_type_info")) { 559 String groupTypeID = req.getParameter("selectGroupType"); 560 selectGroupType = CofaxToolsUtil.getSelectGroupType(db, groupTypeID); 561 ht = CofaxToolsUtil.getGroupTypeInfo(db, groupTypeID); 562 ht = CofaxToolsUtil.escapeHTML(ht); 563 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_youareeditinggrouptypeid") + " " + groupTypeID; 564 } else if (mode.equals("admin_edit_group_types")) { 565 selectGroupType = CofaxToolsUtil.getSelectGroupType(db); 566 ht = new HashMap(); 567 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_createnewgrouptype"); 568 } else if (mode.equals("admin_set_group_type_info")) { 569 CofaxToolsUtil.log("CofaxToolsNavigation navigate: Clearing database cache hash from admin_set_group_type_info."); 570 message = CofaxToolsDbUtils.setGroupTypeInfo(db, req); 571 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 572 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 573 selectGroupType = CofaxToolsUtil.getSelectGroupType(db); 574 ht = new HashMap(); 575 } 576 ht.put("selectGroupType", selectGroupType); 577 ht.put("message", message); 578 579 page.addToGlossary(ht); 580 page.putGlossaryValue("system:message", message); 581 page.putGlossaryValue("system:highLightTab", "admin"); 582 includeResource(page, "" + CofaxToolsServlet.templatePath + "editGroupTypes.jsp", req, res, session); 586 return (""); 587 } else if ((mode.equals("admin_edit_publication_info")) || (mode.equals("admin_get_publication_info")) 588 || (mode.equals("admin_set_publication_info"))) { 589 590 String message = ""; 591 HashMap ht = null; 592 String selectPublication = ""; 593 if (mode.equals("admin_get_publication_info")) { 594 String publication = req.getParameter("PUBLICATION"); 595 ht = CofaxToolsUtil.getPublicationInfo(db, publication); 596 ht = CofaxToolsUtil.escapeHTML(ht); 597 selectPublication = CofaxToolsUtil.getPublicationSelectID(db, session, publication, "PUBLICATION"); 598 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_editingpub") + " " + publication; 599 } else if (mode.equals("admin_edit_publication_info")) { 600 ht = new HashMap(); 601 selectPublication = CofaxToolsUtil.getPublicationSelectID(db, session, "PUBLICATION"); 602 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_createeditpub"); 603 } else if (mode.equals("admin_set_publication_info")) { 604 message = CofaxToolsDbUtils.setPublicationInfo(db, req); 605 CofaxToolsUtil.log("CofaxToolsNavigation navigate: Clearing database cache hash from admin_set_publication_info."); 606 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 607 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 608 ht = new HashMap(); 609 selectPublication = CofaxToolsUtil.getPublicationSelectID(db, session, "PUBLICATION"); 610 String pubID = req.getParameter("PUBID"); 611 String userWorkingPub = user.workingPub; 612 if (userWorkingPub.equals(pubID)) { 613 user.setUserWorkingPubConfigElements(db, session, pubID); 614 } 615 } 616 ht.put("selectPublication", selectPublication); 617 ht.put("message", message); 618 page.addToGlossary(ht); 619 page.putGlossaryValue("system:message", message); 620 page.putGlossaryValue("system:highLightTab", "admin"); 621 includeResource(page, "" + CofaxToolsServlet.templatePath + "editPublication.jsp", req, res, session); 625 return (""); 626 } else if (mode.equals("admin_log_out")) { 627 int test = CofaxToolsLockUnlock.unlockArticlesByUserID(db, (String ) user.userInfoHash.get("USERID")); 628 session.removeAttribute("user"); 629 page.putGlossaryValue("system:message", "Welcome to Cofax!"); 630 page.putGlossaryValue("system:highLightTab", "admin_log_out"); 631 includeResource(page, "" + CofaxToolsServlet.templatePath + "login.jsp", req, res, session); 635 return (""); 636 } else if ((mode.equals("admin_edit_security")) || (mode.equals("admin_set_security"))) { 637 638 String message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_warneditsecurity"); 639 640 if (mode.equals("admin_set_security")) { 641 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 642 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 643 CofaxToolsUtil.log("CofaxToolsNavigation navigate: Clearing database cache " + "hash from admin_set_security."); 644 message = CofaxToolsDbUtils.setSecurity(db, req); 645 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 646 } 647 page.putGlossaryValue("getSecurityCheckboxTable", CofaxToolsUtil.getSecurityCheckboxTable(db)); 648 page.putGlossaryValue("system:message", message); 649 page.putGlossaryValue("system:highLightTab", "admin"); 650 includeResource(page, "" + CofaxToolsServlet.templatePath + "editSecurity.jsp", req, res, session); 654 return (""); 655 656 } else if (mode.equals("file_import_file")) { 657 658 includeResource(page, "" + CofaxToolsServlet.templatePath + "importFile.jsp", req, res, session); 662 return (""); 663 664 } else if ((mode.equals("articletype_edit_articletype")) || (mode.equals("articletype_get_articletype")) 665 || (mode.equals("articletype_set_articletype"))) { 666 667 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_createeditarticletype")); 668 if (mode.equals("articletype_get_articletype")) { 669 String articleType = req.getParameter("selectArticleType"); 670 if (articleType.equals("")) { 671 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_editarticletypemessage")); 672 } else { 673 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_youareeditingarticletype") + " " 674 + articleType); 675 } 676 } else if (mode.equals("articletype_set_articletype")) { 677 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 678 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 679 CofaxToolsUtil.log("CofaxToolsNavigation navigate: Clearing database cache hash from articletype_set_articletype."); 680 String message = CofaxToolsDbUtils.setArticleType(db, req); 681 page.putGlossaryValue("system:message", message); 682 } 683 page.putGlossaryValue("system:highLightTab", "admin"); 684 includeResource(page, "" + CofaxToolsServlet.templatePath + "editArticletype.jsp", req, res, session); 688 return (""); 689 690 } else if ((mode.equals("section_edit_section")) || (mode.equals("section_get_section")) || (mode.equals("section_set_section")) 691 || (mode.equals("section_add_user"))) { 692 693 String limitUser = ""; 694 int intLimit = 0; 695 696 String sectionMappingCode = req.getParameter("sectionMappingCode"); 697 if ((sectionMappingCode == null) || (sectionMappingCode.equals(""))) { 698 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_picktoeditsection")); 699 } else { 700 String limit = (String ) req.getParameter("limit"); 702 if ((limit != null) && (!(limit.equals("")))) { 703 page.putGlossaryValue("request:limit", limit); 704 } 705 limitUser = (String ) req.getParameter("limitUser"); 706 if ((limitUser != null) && (!(limitUser.equals("")))) { 707 page.putGlossaryValue("request:limitUser", limitUser); 708 } else { 709 limitUser = ""; 710 } 711 if (!(limitUser.equals("no"))) 712 limitUser = ""; 713 714 boolean hp = CofaxToolsSecurity.checkSectionEdition(db, session, sectionMappingCode); 717 if (!hp) { 718 hp = CofaxToolsSecurity.checkSectionWriteIn(db, session, sectionMappingCode); 719 if (hp) { 720 includeResource(page, "" + CofaxToolsServlet.templatePath + "viewSection.jsp", req, res, session); } else { 724 viewSearchPage(page, CofaxToolsUtil.getI18NMessage(req.getLocale(), "editsection_norights"), db, session, req, res, year, 725 month, day); 726 } 727 return (""); 728 } 729 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_youareeditingmappingcode") + " " 730 + sectionMappingCode); 731 } 732 if (mode.equals("section_set_section")) { 733 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 734 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 735 CofaxToolsUtil.log("CofaxToolsNavigation navigate: Clearing database cache hash from section_set_section."); 736 String message = CofaxToolsDbUtils.setSection(db, req, session, (String ) user.userInfoHash.get("USERID")); 737 page.putGlossaryValue("system:message", message); 738 String deleteSection = req.getParameter("DELETESECTION"); 739 if (deleteSection != null && deleteSection.equals("on")) { 740 viewSearchPage(page, message, db, session, req, res, year, month, day); 741 return (""); 742 } 743 744 } 745 if (mode.equals("section_add_user")) { 746 CofaxToolsServlet.dataStore.clearCache(DataStore.PACKAGE_TAG_RESULTS); 747 CofaxToolsServlet.dataStore.clearCache(DataStore.CLOB_COLUMNS); 748 page.putGlossaryValue("system:message", CofaxToolsUtil.addUserSection(db, req)); 749 page.putGlossaryValue("sectionMappingCode", (String ) req.getParameter("sectionMappingCode")); 750 } 751 752 boolean hasRightToEditUsers = CofaxToolsSecurity.checkPermissions(db, session, "admin_set_user_info"); 755 page.putGlossaryValue("isAdministrator", hasRightToEditUsers + ""); 756 page.putGlossaryValue("getSelectSections", CofaxToolsUtil.getSelectSections(db, (String ) user.userInfoHash.get("USERID"), 757 user.workingPubName, sectionMappingCode)); 758 page.putGlossaryValue("getsectionManagerTableDir", CofaxToolsUtil.getsectionManagerTable(db, 1, sectionMappingCode, hasRightToEditUsers, 759 limitUser)); 760 page.putGlossaryValue("getsectionManagerTableAcc", CofaxToolsUtil.getsectionManagerTable(db, 0, sectionMappingCode, hasRightToEditUsers, 761 limitUser)); 762 page.putGlossaryValue("getSectionOtherUsersTableDir", CofaxToolsUtil.getSectionOtherUsersTable(db, 1, sectionMappingCode, limitUser)); 763 page.putGlossaryValue("getSectionOtherUsersTableAcc", CofaxToolsUtil.getSectionOtherUsersTable(db, 0, sectionMappingCode, limitUser)); 764 page.putGlossaryValue("system:highLightTab", "section_edit_section"); 765 includeResource(page, "" + CofaxToolsServlet.templatePath + "editSection.jsp", req, res, session); return (""); 769 770 } else if ((mode.equals("section_order_section")) || (mode.equals("section_get_order_section")) || (mode.equals("section_set_order_section"))) { 771 String message = ""; 772 HashMap ht = new HashMap(); 773 String showNumPreOrdersNum = ""; 774 String showNumPreOrders = ""; 775 ArrayList tempSelectMappingsMultiplePublications = (ArrayList) CofaxToolsUtil.getSelectMappingsMultiplePublicationsArrayList(db, "** " 776 + CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_selectmappingsection") + " **", session); 777 String selectMappingsMultiplePublications = ""; 778 String selectStartDate = ""; 779 String selectEndDate = ""; 780 String selectResults = ""; 781 if (mode.equals("section_get_order_section")) { 782 showNumPreOrdersNum = req.getParameter("showNumPreOrders"); 783 String mapping = req.getParameter("mapping"); 784 if ((mapping == null) || (mapping.equals(""))) { 785 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_preordererror"); 786 showNumPreOrdersNum = "00"; 787 } else { 788 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_ordermappingcode") + " " + mapping; 789 } 790 showNumPreOrders = CofaxToolsUtil.createShowPreOrderSelect("showNumPreOrders", showNumPreOrdersNum); 791 String orderSectionComboBox = CofaxToolsUtil.getOrderSectionComboBox(db, user.workingPubName, session, req, showNumPreOrdersNum); 792 if (orderSectionComboBox.length() > 300) { 793 ht.put("saveOrderSection", "<INPUT TYPE=SUBMIT VALUE=\"Save Section Order\">"); 794 } 795 ht.put("orderSectionComboBox", orderSectionComboBox); 796 selectMappingsMultiplePublications = CofaxToolsUtil.createSelect("mapping", tempSelectMappingsMultiplePublications, mapping); 797 selectStartDate = CofaxToolsUtil.getSelectDate("selectStartDate", Integer.parseInt(req.getParameter("selectStartDateyear")), Integer 798 .parseInt(req.getParameter("selectStartDatemonth")), Integer.parseInt(req.getParameter("selectStartDateday"))); 799 selectEndDate = CofaxToolsUtil.getSelectDate("selectEndDate", Integer.parseInt(req.getParameter("selectEndDateyear")), Integer 800 .parseInt(req.getParameter("selectEndDatemonth")), Integer.parseInt(req.getParameter("selectEndDateday"))); 801 String results = req.getParameter("results"); 802 selectResults = CofaxToolsUtil.getSelectOrderSectionResults(results); 803 804 } else if (mode.equals("section_order_section")) { 805 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_selectsectiondropdown"); 806 showNumPreOrdersNum = "10"; 807 showNumPreOrders = CofaxToolsUtil.createShowPreOrderSelect("showNumPreOrders", "10"); 808 selectMappingsMultiplePublications = CofaxToolsUtil.createSelect("mapping", tempSelectMappingsMultiplePublications); 809 selectStartDate = CofaxToolsUtil.getSelectDate("selectStartDate", year, month, day); 810 selectEndDate = CofaxToolsUtil.getSelectDate("selectEndDate", year, month, day); 811 selectResults = CofaxToolsUtil.getSelectOrderSectionResults(""); 812 } else if (mode.equals("section_set_order_section")) { 813 showNumPreOrdersNum = "10"; 814 showNumPreOrders = CofaxToolsUtil.createShowPreOrderSelect("showNumPreOrders", showNumPreOrdersNum); 815 String mapTo = req.getParameter("mapTo"); 816 message = ""; 817 if ((mapTo == null) || (mapTo.equals(""))) { 818 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_nomappingcode"); 819 } else { 820 message = CofaxToolsDbUtils.setOrderSection(db, req); 821 } 822 showNumPreOrders = CofaxToolsUtil.createShowPreOrderSelect("showNumPreOrders", "10"); 823 selectMappingsMultiplePublications = CofaxToolsUtil.createSelect("mapping", tempSelectMappingsMultiplePublications); 824 selectStartDate = CofaxToolsUtil.getSelectDate("selectStartDate", year, month, day); 825 selectEndDate = CofaxToolsUtil.getSelectDate("selectEndDate", year, month, day); 826 selectResults = CofaxToolsUtil.getSelectOrderSectionResults(""); 827 } 828 ht.put("showNumPreOrders", showNumPreOrders); 829 ht.put("selectMappingsMultiplePublications", selectMappingsMultiplePublications); 830 ht.put("selectStartDate", selectStartDate); 831 ht.put("selectEndDate", selectEndDate); 832 ht.put("selectResults", selectResults); 833 ht.put("message", message); 834 page.addToGlossary(ht); 835 page.putGlossaryValue("system:message", message); 836 page.putGlossaryValue("system:highLightTab", "section_order_section"); 837 includeResource(page, "" + CofaxToolsServlet.templatePath + "orderSection.jsp", req, res, session); return (""); 841 842 } else if ((mode.equals("article_search_article")) || (mode.equals("article_search_for_articles")) || (mode.equals("article_set_article")) 843 || (mode.equals("article_set_article_and_preview"))) { 844 845 boolean preview = false; 846 if (mode.equals("article_set_article_and_preview")) { 847 preview = true; 848 mode = "article_set_article"; 849 } 850 HashMap ht = new HashMap(); 851 String message = ""; 852 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_clicksearcharticles"); 853 String selectSavedSearches = CofaxToolsUtil.getSelectSavedSearches(db, session); 854 ht.put("selectSavedSearches", selectSavedSearches); 855 String searchSelectCombo = CofaxToolsUtil.getSearchSelectCombo(req); 856 ht.put("searchSelectCombo", searchSelectCombo); 857 String selectMultipleMultiplePublication = CofaxToolsUtil.getSelectMultipleMultiplePublication(session, 5, req); 858 ht.put("selectMultipleMultiplePublication", selectMultipleMultiplePublication); 859 String selectCategoriesMultiplePublications = CofaxToolsUtil.getSelectCategoriesMultiplePublications(db, session, req); 860 ht.put("selectCategoriesMultiplePublications", selectCategoriesMultiplePublications); 861 ArrayList tempSelectMappingsMultiplePublications = (ArrayList) CofaxToolsUtil.getSelectMappingsMultiplePublicationsArrayList(db, "** " 862 + CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_allmappings") + " **", session); 863 String selectMappingsMultiplePublications = ""; 864 if (mode.equals("article_set_article")) { 865 message = CofaxToolsDbUtils.setArticle(db, req, session, "0"); 866 String deleteArticle = (String ) req.getAttribute("DELETEARTICLE"); 867 if (deleteArticle != null && deleteArticle.equals("on")) { 868 viewSearchPage(page, message, db, session, req, res, year, month, day); 869 return (""); 870 } 871 } 872 if (mode.equals("article_search_for_articles")) { 873 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_returnedsearches"); 874 String results = CofaxToolsUtil.searchArticles(db, req); 875 ht.put("results", results); 876 String mappingPref = ""; 877 String from = req.getParameter("from"); 878 if ((from != null) && (from.equals("savedSearch"))) { 879 mappingPref = req.getParameter("SECTION"); 880 } 881 selectMappingsMultiplePublications = CofaxToolsUtil.createSelect("mapping", tempSelectMappingsMultiplePublications, mappingPref); 882 } else { 883 selectMappingsMultiplePublications = CofaxToolsUtil.createSelect("mapping", tempSelectMappingsMultiplePublications); 884 } 885 886 ht.put("selectMappingsMultiplePublications", selectMappingsMultiplePublications); 887 888 String startSelectDate = CofaxToolsUtil.getSelectDate("startDate", year, month, day); 889 ht.put("startSelectDate", startSelectDate); 890 String stopSelectDate = CofaxToolsUtil.getSelectDate("stopDate", year, month, day); 891 ht.put("stopSelectDate", stopSelectDate); 892 String linkFunction = req.getParameter("linkFunction"); 893 if (linkFunction != null) { 894 ht.put("linkFunction", linkFunction); 895 } 896 String callingFormPortion = req.getParameter("callingFormPortion"); 897 if (callingFormPortion != null) { 898 ht.put("callingFormPortion", callingFormPortion); 899 } 900 901 if (mode.equals("article_set_article")) { 902 try { 903 String urlRedi = "?mode=article_edit_article_by_itemID&hl=article_create_article&ITEMID=" + req.getAttribute("itemID") 904 + "&message=" + message; 905 if (preview) 906 urlRedi = urlRedi + "&preview=1"; 907 res.sendRedirect(urlRedi); 908 } catch (IOException e) { 909 } 910 } else { 911 page.addToGlossary(ht); 912 viewSearchPage(page, message, db, session, req, res, year, month, day); 913 } 914 return (""); 915 916 } else if ((mode.equals("article_set_article_and_validate")) || (mode.equals("article_set_article_and_publish"))) { 917 918 HashMap ht = new HashMap(); 919 String message = ""; 920 if (mode.equals("article_set_article_and_validate")) { 921 message = CofaxToolsWorkflow.validateArticle(db, req, session); 922 } 923 924 if (mode.equals("article_set_article_and_publish")) { 925 message = CofaxToolsWorkflow.publishArticle(db, req, session); 926 } 927 928 page.addToGlossary(ht); 929 930 try { 935 String urlRedi = "?mode=article_edit_article_by_itemID&hl=article_create_article&ITEMID=" + req.getAttribute("itemID") + "&message=" 936 + message; 937 res.sendRedirect(urlRedi); 938 } catch (IOException e) { 939 } 940 941 return (""); 942 943 } else if (mode.equals("search_save_search")) { 944 String message = CofaxToolsUtil.saveSearch(db, session, req); 945 page.putGlossaryValue("system:message", message); 946 includeResource(page, "" + CofaxToolsServlet.templatePath + "savedSearch.jsp", req, res, session); return (""); 950 } else if (mode.equals("article_preview_article")) { 951 HashMap fillReq = new HashMap(); 952 String itemID = (String ) req.getParameter("ITEMID"); 953 HashMap glossary = CofaxToolsPreview.initglossary(itemID, db, req); 954 try { 955 CofaxToolsPreview.preview(glossary, res); 956 } catch (Exception e) { 957 System.err.println("[ERROR] exception occured : " + e); 958 } 959 return (""); 960 961 } else if ((mode.equals("article_create_article")) || (mode.equals("file_get_import_file")) || (mode.equals("article_edit_article_by_itemID"))) { 962 HashMap ht = null; 963 String message = ""; 964 if (req.getParameter("message") != null) 965 message = req.getParameter("message") + "<br>"; 966 String currentPubName = CofaxToolsUtil.getPubNameFromID(db, user.workingPub); 967 String mappingCodesRankComboTable = ""; 968 String selectDate = ""; 969 String selectArticleType = ""; 970 String selectArticleSection = ""; 971 String relatedLinksComboBox = ""; 972 String multiMediaComboBox = ""; 973 HashMap htTemp = new HashMap(); 974 int storyYear = year; 975 int storyMonth = month; 976 int storyDay = day; 977 if (mode.equals("file_get_import_file")) { 978 ht = new HashMap(); 979 String fileName = req.getParameter("importFile"); 980 String body = ""; 981 if ((fileName == null) || (fileName.equals(""))) { 982 includeResource(page, "" + CofaxToolsServlet.templatePath + "importFile.jsp?sub_mode=blank_file_name", req, res, session); 989 return (""); 990 } else if ((fileName.indexOf("LOCAL##!##") == -1)) { 991 body = CofaxToolsFTP.getImportFileBody(fileName, session); 992 } else { 993 fileName = fileName.substring(10); 994 String localFileName = CofaxToolsServlet.contextPath + CofaxToolsUtil.getI18NMessage(req.getLocale(), "import") + File.separator 995 + fileName; 996 body = CofaxToolsUtil.readFile(localFileName); 997 } 998 int extension = fileName.indexOf("."); 999 if (extension > -1) { 1000 String shortFileName = fileName.substring(0, extension); 1001 ht.put("FILENAME", shortFileName); 1002 } 1003 ht.put("BODY", body); 1004 selectArticleType = CofaxToolsUtil.getSelectArticleTypeNew(db, currentPubName, "ARTICLETYPE"); 1005 selectArticleSection = CofaxToolsUtil.getSelectArticleSection(db, currentPubName, "SECTION", (String ) user.userInfoHash.get("USERID")); 1006 relatedLinksComboBox = CofaxToolsUtil.getRelatedLinksComboBox(db); 1007 List l = new ArrayList(); 1008 multiMediaComboBox = CofaxToolsUtil.getMultiMediaComboBox(db, l, "", session, ""); 1009 1010 } else if (mode.equals("article_edit_article_by_itemID")) { 1011 String itemID = req.getParameter("ITEMID"); 1012 int testLock = CofaxToolsLockUnlock.testLockArticle(db, (String ) user.userInfoHash.get("USERID"), itemID); 1014 if (testLock == 0) { 1015 String mail = CofaxToolsLockUnlock.getMailLockedArticle(db, itemID); 1016 page.putGlossaryValue("system:message", "<font color=red>itemID:" + itemID + " - " 1017 + CofaxToolsUtil.getI18NMessage(req.getLocale(), "myaccount_articlelocked") + ": <a HREF='mailto:" + mail + "'>" + mail 1018 + "</a></font>"); 1019 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); return (""); 1023 } 1024 1025 ht = CofaxToolsUtil.getArticleInfoByItemID(db, itemID, session); 1026 ht = CofaxToolsUtil.escapeHTML(ht); 1027 String preview = req.getParameter("preview"); 1028 if (preview != null) 1029 ht.put("preview", preview); 1030 String pubName = (String ) ht.get("PUBNAME"); 1031 if ((pubName == null) || (pubName.equals(""))) { 1032 message = message + CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_getarticleerror") + itemID + "." 1033 + CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_selectotheraction"); 1034 ht.put("message", message); 1035 page.addToGlossary(ht); 1036 page.putGlossaryValue("system:message", message); 1037 page.putGlossaryValue("system:highLightTab", "article_create_article"); 1038 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); 1042 return (""); 1043 1044 } 1045 1046 boolean hp = CofaxToolsSecurity.checkArticleEdition(db, session, itemID); 1049 if (!hp) { 1050 viewSearchPage(page, CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_notallowededitarticle"), db, session, req, res, year, 1051 month, day); 1052 return (""); 1053 } 1054 1055 String pubID = CofaxToolsUtil.getPubIDFromName(db, pubName); 1056 if (!user.workingPub.equals(pubID)) { 1057 user.setUserWorkingPubConfigElements(db, session, pubID); 1058 message = (CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_workingpubchanged") + pubName + "."); 1059 ht.put("message", message); 1060 } else { 1061 message = message + CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_youareeditingarticle") + " '" 1062 + (String ) ht.get("FILENAME") + "'"; 1063 ht.put("message", message); 1064 } 1065 ht = CofaxToolsUtil.convertBooleanToChecked(ht, "DISABLEARTICLE"); 1066 ht = CofaxToolsUtil.convertBooleanToChecked(ht, "DISABLEINDEX"); 1067 String section = (String ) ht.get("SECTION"); 1068 htTemp = CofaxToolsUtil.getArticleMappingsAndRankByItemID(db, itemID, section, pubName); 1069 String pubDate = (String ) ht.get("PUBDATE"); 1070 String currentPubDate = CofaxToolsUtil.sqlDateToCofaxDate(pubDate); 1071 Iterator dates = CofaxUtil.split("/", currentPubDate).iterator(); 1072 storyYear = Integer.parseInt(dates.next().toString()); 1073 storyMonth = Integer.parseInt(dates.next().toString()); 1074 storyDay = Integer.parseInt(dates.next().toString()); 1075 selectArticleType = CofaxToolsUtil.getSelectArticleTypeNew(db, currentPubName, "ARTICLETYPE", (String ) ht.get("ARTICLETYPE")); 1076 selectArticleSection = CofaxToolsUtil.getSelectArticleSection(db, currentPubName, "SECTION", (String ) user.userInfoHash.get("USERID"), 1077 (String ) ht.get("SECTION")); 1078 relatedLinksComboBox = CofaxToolsUtil.getRelatedLinksComboBox(db, itemID); 1079 List l = CofaxToolsUtil.getRelatedMultiMediaByItemID(db, itemID); 1080 multiMediaComboBox = CofaxToolsUtil.getMultiMediaComboBox(db, l, pubDate, session, itemID); 1081 } else if (mode.equals("article_create_article")) { 1082 ht = new HashMap(); 1083 selectArticleType = CofaxToolsUtil.getSelectArticleTypeNew(db, currentPubName, "ARTICLETYPE"); 1084 String section = req.getParameter("section"); 1085 if ((section != null) && (!(section.equals("")))) { 1086 ht.put("SECTION", section); 1087 selectArticleSection = CofaxToolsUtil.getSelectArticleSection(db, currentPubName, "SECTION", (String ) user.userInfoHash 1088 .get("USERID"), section); 1089 } else { 1090 selectArticleSection = CofaxToolsUtil.getSelectArticleSection(db, currentPubName, "SECTION", (String ) user.userInfoHash 1091 .get("USERID")); 1092 } 1093 relatedLinksComboBox = CofaxToolsUtil.getRelatedLinksComboBox(db); 1094 List l = new ArrayList(); 1095 multiMediaComboBox = CofaxToolsUtil.getMultiMediaComboBox(db, l, "", session, ""); 1096 message = CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_fillfieldstocreatearticle"); 1097 ht.put("message", message); 1098 } 1099 mappingCodesRankComboTable = CofaxToolsUtil.getMappingCodesRankComboTable(db, 2, session, htTemp); 1100 selectDate = CofaxToolsUtil.getSelectDate("selectDate", storyYear, storyMonth, storyDay); 1101 String selectStartDate = CofaxToolsUtil.getSelectDate("selectStartDate", storyYear, storyMonth, storyDay); 1102 String selectEndDate = CofaxToolsUtil.getSelectDate("selectEndDate", storyYear, storyMonth, storyDay); 1103 if ((ht.get("LIFECYCLE") != null) && (ht.get("LIFECYCLE").equals("1"))) { 1104 ht.put("LIFECYCLE", "CHECKED"); 1105 try { 1106 String sqlStartDate = (String ) ht.get("PUBSTART"); 1107 int startDateInt = 0; 1108 int endDateInt = 0; 1109 if (sqlStartDate != null) { 1110 sqlStartDate = CofaxToolsUtil.sqlDateToCofaxDate(sqlStartDate); 1111 Iterator startDate = CofaxUtil.split("/", sqlStartDate).iterator(); 1112 int startYear = Integer.parseInt(startDate.next().toString()); 1113 int startMonth = Integer.parseInt(startDate.next().toString()); 1114 int startDay = Integer.parseInt(startDate.next().toString()); 1115 selectStartDate = CofaxToolsUtil.getSelectDate("selectStartDate", startYear, startMonth, startDay); 1116 startDateInt = startYear * 10000 + startMonth * 100 + startDay; 1117 } 1118 String sqlEndDate = (String ) ht.get("PUBEND"); 1119 if (sqlEndDate != null) { 1120 sqlEndDate = CofaxToolsUtil.sqlDateToCofaxDate(sqlEndDate); 1121 Iterator enddate = CofaxUtil.split("/", sqlEndDate).iterator(); 1122 int endYear = Integer.parseInt(enddate.next().toString()); 1123 int endMonth = Integer.parseInt(enddate.next().toString()); 1124 int endDay = Integer.parseInt(enddate.next().toString()); 1125 selectEndDate = CofaxToolsUtil.getSelectDate("selectEndDate", endYear, endMonth, endDay); 1126 endDateInt = endYear * 10000 + endMonth * 100 + endDay; 1127 } 1128 if ((sqlStartDate != null) && (sqlEndDate != null)) { 1129 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); 1130 String todayString = "" + (String ) sdf.format(new java.util.Date ()).toString(); 1131 int todayDateInt = Integer.parseInt(todayString); 1132 if ((startDateInt > todayDateInt) || (endDateInt < todayDateInt)) 1133 ht.put("outOfDate", "1"); 1134 } 1135 } catch (Exception e) { 1136 System.err.println("[WARNING] : " + e); 1137 } 1138 } 1139 1140 ht.put("selectDate", selectDate); 1141 ht.put("selectStartDate", selectStartDate); 1142 ht.put("selectEndDate", selectEndDate); 1143 String selectPubTimeStart = CofaxToolsUtil.getSelectTime("selectPubTimeStart", hour, minute, second, amPm); 1144 ht.put("selectPubTimeStart", selectPubTimeStart); 1145 ht.put("selectArticleType", selectArticleType); 1146 ht.put("selectArticleSection", selectArticleSection); 1147 ht.put("PUBDESC", user.workingPubDesc); 1148 ht.put("PUBNAME", user.workingPubName); 1149 ht.put("mappingCodesRankComboTable", mappingCodesRankComboTable); 1150 ht.put("relatedLinksComboBox", relatedLinksComboBox); 1151 ht.put("multiMediaComboBox", multiMediaComboBox); 1152 1153 boolean canPublish1 = CofaxToolsSecurity.checkPermissions(db, session, "article_set_article_and_publish"); 1157 String tag_cp = CofaxToolsDbUtils.fillTag(db, "getMapCodeFromtblsectionsBySectionAndPubName"); 1158 HashMap results = CofaxToolsDbUtils.getNameValuePackageHash(db, ht, tag_cp); 1159 String mappingCode = (String ) results.get("MAPPINGCODE"); 1160 boolean canPublish2 = CofaxToolsSecurity.checkSectionEdition(db, session, mappingCode); 1161 boolean canPublish = false; 1162 if (canPublish1 && canPublish2) 1163 canPublish = true; 1164 1165 page.addToGlossary(ht); 1166 page.putGlossaryValue("system:message", message); 1167 page.putGlossaryValue("canPublish", canPublish + ""); 1168 page.putGlossaryValue("system:highLightTab", "article_create_article"); 1169 String itemID = req.getParameter("ITEMID"); 1171 if ((itemID != null) && !(itemID.equals("0"))) { 1172 int test = CofaxToolsLockUnlock.lockArticle(db, (String ) user.userInfoHash.get("USERID"), itemID); 1173 } 1174 includeResource(page, "" + CofaxToolsServlet.templatePath + "createArticle.jsp", req, res, session); return (""); 1178 } 1179 1180 else if (mode.equals("unlock_article")) { 1181 String itemID = req.getParameter("ITEMID"); 1182 if ((itemID == null) || (itemID.equals("0"))) { 1183 page.putGlossaryValue("system:message", "Select an article to unlock it"); 1184 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); } else { 1188 int test = CofaxToolsLockUnlock.unlockArticle(db, (String ) user.userInfoHash.get("USERID"), itemID); 1189 try { 1190 res.sendRedirect("?mode=admin_get_mycount&hl=admin"); 1191 } catch (Exception e) { 1192 page.putGlossaryValue("system:message", "An error has occured while redirect to 'My account' page."); 1193 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); } 1197 } 1198 return (""); 1199 } 1200 1201 else if (mode.equals("cofax_navigation")) { 1202 String workingPubName = user.workingPubName; 1203 String userID = (String ) user.userInfoHash.get("USERID"); 1204 page.putGlossaryValue("getTabSections", CofaxToolsUtil.getTabPublications(db, userID, (String ) user.workingPub)); 1205 includeResource(page, "" + CofaxToolsServlet.templatePath + "cofaxNavigateFile.jsp", req, res, session); return (""); 1209 } 1210 1211 else { 1212 CofaxToolsUtil.log("Check external module for this query : " + mode); 1214 HashMap fillReq = new HashMap(); 1215 String tag = "select * from tblmodules where enabled=1"; 1216 List listModules = CofaxToolsDbUtils.getPackageData(db, fillReq, tag); 1217 while (listModules.size() > 0) { 1218 HashMap hashModules = (HashMap) listModules.get(0); 1219 String moduleClass = (String ) hashModules.get("MODULECLASS"); 1220 String moduleMode = (String ) hashModules.get("MODULEMODE"); 1221 CofaxToolsUtil.log(" - " + moduleMode); 1222 if (mode.startsWith(moduleMode)) { 1223 CofaxToolsUtil.log("it's this mode !"); 1224 try { 1225 Class c = Class.forName(moduleClass); 1226 org.cofax.module.CofaxToolsExtModule extModule = (org.cofax.module.CofaxToolsExtModule) c.newInstance(); 1227 CofaxToolsUtil.log("Starting mode : " + mode); 1228 return (extModule.navigate(db, page, req, res, session)); 1229 } catch (Exception e) { 1230 System.err.println("[ERROR] Error loading moduleClass '" + moduleClass + "' :" + e); 1231 } 1232 } 1233 listModules.remove(0); 1234 } 1235 1236 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_noexistaction") 1239 + CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_selectotheraction")); 1240 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); 1244 return (""); 1245 } 1246 } 1247 else { 1249 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_nopermissions") + mode + ")"); 1250 includeResource(page, "" + CofaxToolsServlet.templatePath + "selectAction.jsp", req, res, session); 1254 return (""); 1255 } 1256 } 1257 else if (isLoggedIn == false) { 1259 if (mode.equals("forgot_password")) { 1260 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_getnewpw")); 1261 page.putGlossaryValue("system:highLightTab", ""); 1262 page.putGlossaryValue("querystring", (String ) req.getQueryString()); 1263 includeResource(page, "" + CofaxToolsServlet.templatePath + "forgot_password.jsp", req, res, session); return (""); 1267 } 1268 if (mode.equals("forgot_password_send")) { 1269 String message = CofaxToolsDbUtils.setNewPassword(db, req, (String ) req.getParameter("login"), (String ) req.getParameter("email")); 1270 page.putGlossaryValue("system:message", message.substring(1)); 1271 page.putGlossaryValue("system:highLightTab", ""); 1272 if (message.startsWith("1")) 1273 includeResource(page, "" + CofaxToolsServlet.templatePath + "login.jsp", req, res, session); else 1277 includeResource(page, "" + CofaxToolsServlet.templatePath + "forgot_password.jsp", req, res, session); return (""); 1281 } 1282 1283 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_yourenotloggedin")); 1284 page.putGlossaryValue("system:highLightTab", ""); 1285 page.putGlossaryValue("querystring", (String ) req.getQueryString()); 1286 includeResource(page, "" + CofaxToolsServlet.templatePath + "login.jsp", req, res, session); 1290 return (""); 1291 } else { 1292 page.putGlossaryValue("system:message", CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_yourenotloggedin")); 1293 page.putGlossaryValue("system:highLightTab", ""); 1294 includeResource(page, "" + CofaxToolsServlet.templatePath + "login.jsp", req, res, session); 1298 return (""); 1299 } 1300 } 1301 1302 public static void viewSearchPage(CofaxPage page, String message, DataStore db, HttpSession session, HttpServletRequest req, HttpServletResponse res, 1303 int year, int month, int day) { 1304 HashMap ht = new HashMap(); 1305 String selectSavedSearches = CofaxToolsUtil.getSelectSavedSearches(db, session); 1306 ht.put("selectSavedSearches", selectSavedSearches); 1307 String searchSelectCombo = CofaxToolsUtil.getSearchSelectCombo(req); 1308 ht.put("searchSelectCombo", searchSelectCombo); 1309 String selectMultipleMultiplePublication = CofaxToolsUtil.getSelectMultipleMultiplePublication(session, 5, req); 1310 ht.put("selectMultipleMultiplePublication", selectMultipleMultiplePublication); 1311 String selectCategoriesMultiplePublications = CofaxToolsUtil.getSelectCategoriesMultiplePublications(db, session, req); 1312 ht.put("selectCategoriesMultiplePublications", selectCategoriesMultiplePublications); 1313 ArrayList tempSelectMappingsMultiplePublications = (ArrayList) CofaxToolsUtil.getSelectMappingsMultiplePublicationsArrayList(db, "** " 1314 + CofaxToolsUtil.getI18NMessage(req.getLocale(), "tools_allmappings") + " **", session); 1315 String selectMappingsMultiplePublications = CofaxToolsUtil.createSelect("mapping", tempSelectMappingsMultiplePublications); 1316 ht.put("selectMappingsMultiplePublications", selectMappingsMultiplePublications); 1317 String startSelectDate = CofaxToolsUtil.getSelectDate("startDate", year, month, day); 1318 ht.put("startSelectDate", startSelectDate); 1319 String stopSelectDate = CofaxToolsUtil.getSelectDate("stopDate", year, month, day); 1320 ht.put("stopSelectDate", stopSelectDate); 1321 String callingFormPortion = req.getParameter("callingFormPortion"); 1322 if (callingFormPortion != null) { 1323 ht.put("callingFormPortion", callingFormPortion); 1324 } 1325 page.addToGlossary(ht); 1326 page.putGlossaryValue("system:message", message); 1327 page.putGlossaryValue("system:highLightTab", "article_search_article"); 1328 includeResource(page, "" + CofaxToolsServlet.templatePath + "searchArticles.jsp", req, res, session); } 1332 1333} 1334 | Popular Tags |