1 package org.jahia.webapps.addressbook; 2 3 import java.io.*; 4 import java.util.*; 5 import java.sql.*; 6 import javax.servlet.*; 7 import javax.servlet.http.*; 8 9 import org.apache.ojb.broker.PersistenceBroker; 11 import org.apache.ojb.broker.*; 14 import org.apache.ojb.broker.query.*; 15 import org.apache.ojb.broker.accesslayer.*; 16 17 18 import org.jahia.tools.*; 19 import org.jahia.tools.db.*; 20 import org.jahia.tools.files.*; 21 22 23 29 public class AddbookHandler { 30 31 32 33 protected AddressBookDBServices m_DBServices; 34 35 36 41 public static void init(HttpServletRequest request) throws IOException, ServletException { 42 43 Tools.toConsole("AddbookHandler: init","begin: mode standalone"); 44 String login= request.getRemoteUser(); 45 int user_id = AdbApplicationDB.findUser(login); 46 try{ 48 49 if (user_id==-1) { 50 Tools.toConsole("AddbookHandler: init","Unknown user !"); 51 request.setAttribute("nextPage","error.jsp"); 52 53 } 54 else { 55 56 Tools.toConsole("AddbookHandler: init","user_id = " + user_id); 57 AddressBook book= AdbApplicationDB.selectAddBook(user_id); 60 if (!book.equals(null)) { 61 int addbook_id = book.getId(); 62 Tools.toConsole("AddbookHandler: init","addbook_id = "+ addbook_id); 63 AddressBook mybook = new AddressBook(addbook_id,user_id); 64 Tools.toConsole("AddbookHandler: login","Login succeeded !"); 65 request.getSession().setAttribute("myBook",mybook); 66 request.getSession().setAttribute("sortOrder","asc"); 67 request.getSession().setAttribute("searchWord",""); 68 request.getSession().setAttribute("field",""); 69 request.getSession().setAttribute("begin",new Integer (0)); 70 request.setAttribute("nextPage","display.jsp"); 71 return; 72 } else{ 73 Tools.toConsole("AddbookHandler: init","Can't find an address book for this user !"); 74 request.setAttribute("nextPage","error.jsp");} 75 } 76 request.setAttribute("nextPage","error.jsp"); 77 } 78 catch (Exception e) { 79 Tools.toConsole("AddbookHandler: init",e.toString()); 80 request.setAttribute("nextPage","error.jsp"); 81 } 82 } 83 84 85 91 public static void init(HttpServletRequest request, String contextId) throws IOException, ServletException { 92 93 Tools.toConsole("AddbookHandler: init","begin: mode in-portal"); 94 String useMode = (String )request.getSession().getAttribute("useMode"); 96 Integer i= new Integer (contextId); 97 int context = i.intValue(); 98 int userId; 99 int nextId=0; 100 AddressBook book; 101 102 if (useMode.equals("user")) { 103 userId = getUserId(request.getRemoteUser()); 104 } else { 105 userId = -1; 106 } 107 try { 108 if (useMode.equals("user")) { 110 book = AdbApplicationDB.selectAddBookContext(context, userId); 111 113 } 114 else { 115 book = AdbApplicationDB.selectAddBookContext(context); 116 } 117 if (book != null) { 118 int max = -1; 119 max = book.getId(); 120 } 121 122 else { 123 Tools.toConsole("AddbookHandler: init", 124 "No address book found for this context: create a new one"); 125 nextId = AdbApplicationDB.getNextId("addbook_id", "addbook"); 128 Tools.toConsole("AddbookHandler: init", 129 "insert into addbook values (" + nextId + "," + 130 contextId + "," + userId + ")"); 131 book = AdbApplicationDB.insertAddBook(nextId, context, userId); 133 } 135 136 int addBookId = book.getId(); 137 DbAddBook databook = null; 138 databook = new DbAddBook(book); 139 book.setContacts(AdbApplicationDB.loadContacts(addBookId)); 140 book.setCategories(AdbApplicationDB.loadCategories(addBookId)); 141 book.setComms(AdbApplicationDB.loadCommunications()); 142 Tools.toConsole("AddressBook: constructor", "End"); 143 144 Tools.toConsole("AddbookHandler: init", 145 "Address book initialized : context id = " + contextId); 146 Tools.toConsole("AddbookHandler: init", 147 "addbook id = " + nextId + ", user_id = " + userId); 148 request.getSession().setAttribute("myBook", book); 149 request.getSession().setAttribute("sortOrder", "asc"); 150 request.getSession().setAttribute("searchWord", ""); 151 request.getSession().setAttribute("field", ""); 152 request.getSession().setAttribute("begin", new Integer (0)); 153 request.setAttribute("nextPage", "display.jsp"); 154 return; 155 156 } 157 catch (Exception e) { 158 Tools.toConsole("AddbookHandler: init", e.toString()); 159 } 160 } 161 162 163 169 public static int getUserId ( String username ) { 170 171 Tools.toConsole("AddbookHandler: getUserId","Begin"); 172 try { 173 int userId= AdbApplicationDB.findUser(username); 174 if(userId==-1) { 178 int nextId= AdbApplicationDB.getNextId("user_id","user" ); 179 AdbApplicationDB.insertUser(nextId, username); 184 Tools.toConsole("AddbookHandler: getUserId","User " + username + " created with id " + nextId); 185 return nextId; 186 } else { 187 return userId; 188 } 189 190 } catch (Exception sqle) { 191 Tools.toConsole("AddbookHandler: getUserId","Can't get user id : " + sqle.toString()); 192 return -1; 193 } 194 195 } 196 197 198 203 public static void login(HttpServletRequest request) 204 throws IOException, ServletException { 205 206 String username = request.getParameter("username"); 207 String passwd = request.getParameter("password"); 208 User user = null; 209 int user_id; 210 int addbook_id; 211 AddressBook book=null; 212 if (!username.equals("")) { 214 try { 215 user = AdbApplicationDB.selectUser(username, passwd); 216 if (!user.equals(null)) { 218 219 user_id = user.getId(); 220 book = AdbApplicationDB.selectAddBook(user_id); 222 if (!book.equals(null)) { 223 addbook_id = book.getId(); 224 AddressBook mybook = new AddressBook(addbook_id,user_id); 225 request.getSession().setAttribute("myBook",mybook); 226 request.setAttribute("nextPage","display.jsp"); 227 Tools.toConsole("AddbookHandler: login","Login succeeded !"); 228 } else { request.getSession().invalidate(); 230 request.setAttribute("nextPage","error.jsp"); 231 } 232 } else { request.setAttribute("nextPage","error.jsp"); 234 } 235 } catch (Exception e) { 236 request.setAttribute("nextPage","error.jsp"); 237 } 238 } 239 else { 240 request.setAttribute("nextPage","error.jsp"); 241 } 242 } 243 244 245 252 public static void setUseMode(HttpServletRequest request) throws IOException, ServletException { 253 254 Tools.toConsole("AddbookHandler: setUseMode","begin"); 255 HttpSession session = request.getSession(true); 256 String contextId = (String )request.getSession().getAttribute("contextId"); 257 String useModePath = (String )request.getSession().getAttribute("useModePath"); 258 String useMode = request.getParameter("useMode"); 259 session.setAttribute("useMode",useMode); 260 261 Properties Prop_useMode = new Properties(); 263 Prop_useMode.setProperty("useMode"+ contextId,useMode); 264 FileOutputStream fis = new FileOutputStream(useModePath, true); 265 Prop_useMode.store(fis, ""); 266 fis.close(); 267 request.setAttribute("nextPage","display.jsp"); 268 } 269 270 271 276 public static void searchForm(HttpServletRequest request) { 277 278 request.setAttribute("nextPage","search.jsp"); 279 } 280 281 282 287 public static void search(HttpServletRequest request) { 288 289 AddressBook mybook = (AddressBook) request.getSession().getAttribute( 290 "myBook"); 291 Vector fields = new Vector(); 292 Vector values = new Vector(); 293 String sortField = request.getParameter("sort_field"); 294 String sortOrder = request.getParameter("sort_order"); 295 String word = request.getParameter("word"); 296 request.setAttribute("word",word); 297 String field = request.getParameter("field"); 298 request.getSession().setAttribute("begin", new Integer (0)); 299 String nextAction = request.getParameter("next_action"); 300 if (nextAction.equals("display_search_results")) { 301 fields.add(field); 302 values.add(word); 303 304 Vector results = mybook.search(field, word, sortField, sortOrder, 305 mybook.getId()); 306 request.getSession().setAttribute("results", results); 307 308 } 309 else { 310 311 field = ""; 312 word = ""; 313 fields.add(new String ("")); 314 values.add(new String ("")); 315 mybook.setContacts(mybook.search(field, word, sortField, sortOrder, 316 mybook.getId())); 317 } 318 request.getSession().setAttribute("field", field); 319 request.getSession().setAttribute("sortOrder", sortOrder); 320 request.getSession().setAttribute("searchWord", word); 321 request.setAttribute("currentAction", nextAction); 322 request.setAttribute("nextPage", "display.jsp"); 323 } 324 325 326 331 public static void displaySearchResults(HttpServletRequest request) { 332 333 String tmp = request.getParameter("begin"); 334 Integer begin = (tmp == null) ? new Integer (0) : new Integer (tmp); 335 request.getSession().setAttribute("begin",begin); 336 request.setAttribute("currentAction", "display_search_results"); 337 request.setAttribute("nextPage","display.jsp"); 338 } 339 340 341 346 public static void display(HttpServletRequest request) throws IOException, ServletException { 347 348 request.getSession().removeAttribute("word"); 349 request.getSession().removeAttribute("results"); 350 String tmp = request.getParameter("begin"); 351 Integer begin = (tmp == null) ? new Integer (0) : new Integer (tmp); 352 request.getSession().setAttribute("begin",begin); 353 request.setAttribute("currentAction", "display_content"); 354 request.setAttribute("nextPage","display.jsp"); 355 } 356 357 358 363 public static void changeRole(HttpServletRequest request) throws IOException, ServletException { 364 365 request.getSession().setAttribute("role",request.getParameter("role")); 366 request.setAttribute("nextPage","display.jsp"); 367 } 368 369 370 375 public static void addContactForm(HttpServletRequest request) throws IOException, ServletException { 376 377 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 378 request.setAttribute("companies",AdbApplicationDB.readCompanies(mybook.getId())); 379 request.getSession().setAttribute("contact", new Contact()); 380 request.setAttribute("incorrectForm", new Boolean (false)); 381 request.setAttribute("currentAction", request.getParameter("current_action")); 382 request.setAttribute("nextPage","edit_form.jsp"); 383 request.setAttribute("bottomPage","edit_form_bottom.jsp"); 384 Enumeration paramNameEnum = request.getParameterNames(); 385 while (paramNameEnum.hasMoreElements()) { 386 String curParamName = (String ) paramNameEnum.nextElement(); 387 388 } 389 390 } 391 392 393 398 public static void changeContactForm(HttpServletRequest request) throws IOException, ServletException { 399 400 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 401 Contact theContact = (Contact)request.getSession().getAttribute("contact"); 402 String comp_name = theContact.getCompany(); 403 Tools.toConsole("AddBookHandler: changeContactForm","theContact.getCompany = "+comp_name); 404 try { 405 int comp_id = Integer.parseInt(comp_name); 406 Contact company = AdbApplicationDB.SearchContactById(comp_id); 407 request.setAttribute("company_name",company.getLastName()); 408 } catch (NumberFormatException nfe) { 409 request.setAttribute("company_name",comp_name); 410 } 411 request.setAttribute("currentAction", request.getParameter("current_action")); 412 request.setAttribute("companies",AdbApplicationDB.readCompanies(mybook.getId())); 413 request.setAttribute("incorrectForm", new Boolean (false)); 414 request.setAttribute("nextPage","edit_form.jsp"); 415 request.setAttribute("bottomPage","edit_form_bottom.jsp"); 416 } 417 418 419 424 public static void viewContact(HttpServletRequest request) throws IOException, ServletException { 425 426 int id = Integer.parseInt(request.getParameter("contact_id")); 427 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 428 Contact theContact = AdbApplicationDB.SearchContactById(id); 429 Tools.toConsole("AddBookHandler: viewContact","theContact = " + theContact.getLastName()); 430 String comp_name = theContact.getCompany(); 431 try { 432 int comp_id = Integer.parseInt(comp_name); 433 Contact company = mybook.searchContactById(comp_id); 434 Tools.toConsole("AddbookHandler: viewContact","Company : "+company.getLastName()); 435 request.setAttribute("company_name",company.getLastName()); 436 } catch (NumberFormatException nfe) { 437 } 438 request.getSession().setAttribute("contact",theContact); 439 request.setAttribute("nextPage","view_contact.jsp"); 440 } 441 442 443 448 public static void deleteContactForm(HttpServletRequest request) throws IOException, ServletException { 449 450 int contact_id = Integer.parseInt(request.getParameter("contact_id")); 451 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 452 Contact theContact = mybook.searchContactById(contact_id); 453 request.setAttribute("contact_name",theContact.getLastName()); 454 request.setAttribute("nextPage","delete_form.jsp"); 455 request.setAttribute("bottomPage","delete_form_bottom.jsp"); 456 } 457 458 459 464 public static void addContact(HttpServletRequest request) { 465 466 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 467 try { 468 469 Contact newContact = readUrl(request); 471 if (newContact.isCorrect()) { 473 mybook.addContact(newContact); 474 Tools.toConsole("AddbookHandler: addContact","contact inserted: "+newContact.getId()); 475 request.setAttribute("currentAction","display_content"); 476 request.setAttribute("nextPage","display.jsp"); 477 } else { 478 Tools.toConsole("AddbookHandler: addContact","contact incorrect"); 479 request.setAttribute("incorrectForm",new Boolean (true)); 480 request.setAttribute("contact", newContact); 481 request.setAttribute("companies",AdbApplicationDB.readCompanies(mybook.getId())); 482 request.setAttribute("nextPage","edit_form.jsp"); 483 request.setAttribute("bottomPage","edit_form_bottom.jsp"); 484 } 485 } catch (Exception e) { 486 Tools.toConsole("AddbookHandler: addContact", e.toString()); 487 request.setAttribute("nextPage","add_problem.html"); 488 } 489 } 490 491 492 497 public static void changeContact(HttpServletRequest request) { 498 499 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 500 try { 502 Tools.toConsole("AddbookHandler: changeContact","begin"); 503 String id = (String ) request.getParameter("contact_id"); 505 int contact_id = (int)Integer.parseInt(id); 506 Tools.toConsole("AddbookHandler: changeContact","contact_id = "+contact_id); 507 508 Contact newContact = readUrl(request); 510 newContact.setId(contact_id); 511 if (newContact.isCorrect()) { 512 mybook.changeContact(contact_id, newContact); 514 request.getSession().setAttribute("contact",newContact); 515 String comp_name = newContact.getCompany(); 518 try { 519 int comp_id = Integer.parseInt(comp_name); 520 Contact company = mybook.searchContactById(comp_id); 521 Tools.toConsole("AddbookHandler: viewContact","Company : "+company.getLastName()); 522 request.setAttribute("company_name",company.getLastName()); 523 } catch (NumberFormatException nfe) { 524 } 525 request.setAttribute("nextPage","view_contact.jsp"); 526 } else { 527 request.setAttribute("incorrectForm",new Boolean (true)); 528 request.setAttribute("contact", newContact); 529 request.setAttribute("contact_id",id); 530 request.setAttribute("nextPage","edit_form.jsp"); 531 request.setAttribute("bottomPage","edit_form_bottom.jsp"); 532 } 533 Tools.toConsole("AddbookHandler: changeContact","end"); 534 } catch (Exception e) { 535 Tools.toConsole("AddbookHandler: changeContact", e.toString()); 536 request.setAttribute("nextPage","change_problem.html"); 537 } 538 } 539 540 541 546 public static void deleteContact(HttpServletRequest request) { 547 548 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 549 try { 551 String id_string = request.getParameter("contact_id"); 552 int contact_id = (int)Integer.parseInt(id_string); 553 mybook.removeContact(contact_id); 554 request.setAttribute("currentAction","display_content"); 555 request.setAttribute("nextPage","display.jsp"); 556 } catch (Exception e) { 557 Tools.toConsole("AddbookHandler: deleteContact", e.toString()); 558 request.setAttribute("nextPage","delete_problem.html"); 559 } 560 } 561 562 563 568 public static String save(HttpServletRequest request) { 569 Tools.toConsole("AddbookHandler: save","begin"); 570 long time = System.currentTimeMillis(); 571 String dir_path = (String )request.getSession().getAttribute("dirPath"); 572 String file_path = dir_path + File.separator + time + ".adb"; 573 Tools.toConsole("AddbookHandler: save","try to save to file " + file_path); 574 int addbookId = Integer.parseInt(request.getParameter("addbook")); 575 int ownerId = Integer.parseInt(request.getParameter("owner")); 576 AddressBook myBookCopy = new AddressBook(addbookId,ownerId); 577 myBookCopy.save(file_path); 578 Tools.toConsole("AddbookHandler: save","back from save file "); 579 return file_path; 580 } 581 582 583 588 public static void manageCategories(HttpServletRequest request) { 589 590 request.setAttribute("nextPage","manage_cat.jsp"); 591 } 592 593 594 599 public static void addCatForm(HttpServletRequest request) { 600 601 request.setAttribute("currentAction","add_cat"); 602 request.setAttribute("nextPage","edit_cat.jsp"); 603 request.setAttribute("bottomPage","edit_cat_bottom.jsp"); 604 605 } 606 607 608 613 public static void editCatForm(HttpServletRequest request) { 614 615 request.setAttribute("currentAction","rename_cat"); 616 int cat_id = Integer.parseInt((String )request.getParameter("category")); 617 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 618 request.setAttribute("cat_name",mybook.getCatName(cat_id)); 619 request.setAttribute("nextPage","edit_cat.jsp"); 620 request.setAttribute("bottomPage","edit_cat_bottom.jsp"); 621 } 622 623 624 629 public static void deleteCatForm(HttpServletRequest request) { 630 631 int cat_id = Integer.parseInt((String )request.getParameter("cat_id")); 632 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 633 request.setAttribute("cat_name",mybook.getCatName(cat_id)); 634 request.setAttribute("nextPage","delete_cat.jsp"); 635 request.setAttribute("bottomPage","delete_cat_bottom.jsp"); 636 } 637 638 639 644 public static void addCat(HttpServletRequest request) { 645 646 String cat_name = (String )request.getParameter("cat_name"); 647 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 648 int id=mybook.getId(); 649 AdbApplicationDB.createCategory(cat_name, id); 650 651 Vector categories = AdbApplicationDB.loadCategories(id); 652 mybook.setCategories(AdbApplicationDB.loadCategories(id)); 653 request.setAttribute("nextPage","manage_cat.jsp"); 654 655 } 656 657 658 663 public static void renameCat(HttpServletRequest request) { 664 665 int cat_id = Integer.parseInt((String )request.getParameter("cat_id")); 666 String cat_name = (String )request.getParameter("cat_name"); 667 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 668 mybook.renameCategory(cat_id,cat_name); 669 request.setAttribute("nextPage","manage_cat.jsp"); 670 } 671 672 673 678 public static void deleteCat(HttpServletRequest request) { 679 680 int cat_id = Integer.parseInt((String )request.getParameter("cat_id")); 681 request.setAttribute("cat_id",request.getParameter("cat_id")); 682 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 683 mybook.deleteCategory(cat_id); 684 request.setAttribute("nextPage","manage_cat.jsp"); 685 } 686 687 688 693 private static Contact readUrl(HttpServletRequest request) { 694 695 Contact newContact = new Contact(); 696 AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook"); 697 int id = mybook.getId(); 698 newContact.setAddBookId(id); 699 newContact.setLastName(request.getParameter("last_name")); 700 String lastname= request.getParameter("last_name"); 701 newContact.setFirstName(request.getParameter("first_name")); 702 newContact.setCivilTitle(request.getParameter("civil_title")); 703 newContact.setProfTitle(request.getParameter("prof_title")); 704 String company = request.getParameter("company"); 705 706 if (newContact.getCivilTitle().equals("Company")) { 707 if (newContact.getLastName().equals("")) { 708 newContact.setLastName(company); 709 } 710 } else { String company_id = request.getParameter("company_id"); 712 Tools.toConsole("company id = "+company_id); 713 newContact.setCompany(company); 714 if (company_id != null) { 715 if (!company_id.equals("-1")) { 716 newContact.setCompany(company_id); 719 } 720 } 721 } 722 Tools.toConsole("AddbookHandler: readUrl","company = " + newContact.getCompany()); 723 newContact.setAddress1(request.getParameter("address1")); 724 newContact.setAddress2(request.getParameter("address2")); 725 newContact.setZip(request.getParameter("zip")); 726 newContact.setCity(request.getParameter("city")); 727 newContact.setState(request.getParameter("state")); 728 newContact.setNotes(request.getParameter("notes")); 729 730 int comm_id; 731 String comm_value; 732 for(int i = 0; i < 5; i++) { 734 comm_value = request.getParameter("comm_value"+i); 735 if (!comm_value.equals("")) { 736 try { 737 comm_id = Integer.parseInt(request.getParameter("comm_id"+i)); 738 newContact.setNumber(i, comm_id, comm_value); 739 } catch (Exception e) { 740 newContact.setNumber(i,0,""); 741 } 742 } else { 743 newContact.setNumber(i,0,""); 744 } 745 } 746 747 String tmp = request.getParameter("country"); 749 newContact.setCountry( tmp == null ? "" : tmp); 750 tmp = request.getParameter("category"); 751 newContact.setCategory( tmp == null ? -1 : Integer.parseInt(tmp) ); 752 return newContact; 753 } 754 755 } 756 | Popular Tags |