1 package org.contineo.actions.documan.document; 2 3 import java.util.Collection ; 4 5 import javax.servlet.http.HttpServletRequest ; 6 import javax.servlet.http.HttpServletResponse ; 7 import javax.servlet.http.HttpSession ; 8 9 import org.apache.log4j.Level; 10 import org.apache.log4j.Logger; 11 import org.apache.struts.action.Action; 12 import org.apache.struts.action.ActionError; 13 import org.apache.struts.action.ActionErrors; 14 import org.apache.struts.action.ActionForm; 15 import org.apache.struts.action.ActionForward; 16 import org.apache.struts.action.ActionMapping; 17 import org.apache.struts.action.ActionMessage; 18 import org.apache.struts.action.ActionMessages; 19 import org.contineo.admin.Menu; 20 import org.contineo.admin.dao.MenuDAO; 21 import org.contineo.core.DateBean; 22 import org.contineo.core.LoggingManager; 23 import org.contineo.core.SessionManagement; 24 import org.contineo.documan.Document; 25 import org.contineo.documan.History; 26 import org.contineo.documan.Keywords; 27 import org.contineo.documan.dao.DocumentDAO; 28 import org.contineo.documan.dao.HistoryDAO; 29 import org.contineo.forms.DocForm; 30 31 36 public class ChangeDocAction extends Action { 37 38 42 private Logger logger; 43 44 45 46 public ChangeDocAction() { 47 logger = LoggingManager.getLogger(this.getClass()); 48 } 49 50 public ActionForward execute(ActionMapping mapping, 51 ActionForm form, HttpServletRequest request, 52 HttpServletResponse response) { 53 ActionForward actionForward = new ActionForward(); 54 ActionErrors errors = new ActionErrors(); 55 ActionMessages messages = new ActionMessages(); 56 HttpSession session = request.getSession(); 57 if (SessionManagement.isValid(session)) { 58 String menuid = request.getParameter("menuId"); 59 DocumentDAO ddao = new DocumentDAO(); 60 MenuDAO mdao = new MenuDAO(); 61 try { 62 DocForm dform = (DocForm)form; 63 Document doc = ddao.findByMenuId(Integer.parseInt(menuid)); 64 Menu menu = mdao.findByPrimaryKey(Integer.parseInt(menuid)); 65 menu.setMenuSort(Integer.parseInt(dform.getMenuSort())); 66 String name = dform.getDocName(); 67 if (name != null && !name.equals("")) 68 menu.setMenuText(name); 69 doc.setMenu(menu); 70 doc.setDocName(name); 71 doc.setSource(dform.getSource()); 72 doc.setSourceAuthor(dform.getSourceAuthor()); 73 String date = dform.getSourceDate(); 74 75 String language = (String ) session.getAttribute("language"); 77 if (language == null || language.equalsIgnoreCase("")) 78 { 79 language = request.getParameter("language"); 80 if (language == null || language.equalsIgnoreCase("")) 81 language = "en"; 82 } 83 String dateStr = DateBean.toCompactString(date, language); 84 if (dateStr != null) 85 doc.setSourceDate(dateStr); 86 87 doc.setSourceType(dform.getSourceType()); 88 doc.setCoverage(dform.getCoverage()); 89 doc.setLanguage(dform.getLanguage()); 90 doc.clearKeywords(); 91 Keywords words = new Keywords(); 92 Collection keywords = words.toKeywords(dform.getKeywords()); 93 boolean stored = ddao.store(doc); 94 doc.setKeywords(keywords); 95 stored = ddao.store(doc); 96 97 98 String username = (String )session.getAttribute("authuser"); 99 History history = new History(); 100 history.setDocId(doc.getDocId()); 101 history.setDate(DateBean.toCompactString()); 102 history.setUsername(username); 103 history.setEvent(History.CHANGED); 104 HistoryDAO historyDao = new HistoryDAO(); 105 historyDao.store(history); 106 if (!stored) 107 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.changedoc")); 108 else 109 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.changedoc")); 110 } catch (Exception e) { 111 if (logger.isEnabledFor(Level.ERROR)) 112 logger.error(e.getMessage()); 113 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.changedoc")); 114 } 115 saveErrors(request, errors); 116 saveMessages(request, messages); 117 actionForward.setPath("/EditDoc.do?menuid=" + menuid); 118 } else 119 actionForward = mapping.findForward("invalid"); 120 return actionForward; 121 } 122 } 123 | Popular Tags |