1 18 19 package cowsultants.itracker.web.actions; 20 21 import java.io.*; 22 import java.rmi.*; 23 import java.util.*; 24 import javax.ejb.*; 25 import javax.rmi.*; 26 import javax.naming.*; 27 import javax.servlet.*; 28 import javax.servlet.http.*; 29 30 import org.apache.commons.beanutils.*; 31 import org.apache.struts.action.*; 32 import org.apache.struts.util.*; 33 34 import cowsultants.itracker.ejb.client.exceptions.*; 35 import cowsultants.itracker.ejb.client.interfaces.*; 36 import cowsultants.itracker.ejb.client.models.*; 37 import cowsultants.itracker.ejb.client.util.*; 38 import cowsultants.itracker.web.scheduler.*; 39 import cowsultants.itracker.web.util.*; 40 41 42 public class OrderCustomFieldValueAction extends ITrackerAction { 43 44 public OrderCustomFieldValueAction() { 45 } 46 47 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 48 ActionErrors errors = new ActionErrors(); 49 50 if(! isLoggedIn(request, response)) { 51 return mapping.findForward("login"); 52 } 53 54 if(! hasPermission(UserUtilities.PERMISSION_USER_ADMIN, request, response)) { 55 return mapping.findForward("unauthorized"); 56 } 57 58 try { 59 InitialContext ic = new InitialContext(); 60 61 Object scRef = ic.lookup("java:comp/env/" + SystemConfiguration.JNDI_NAME); 62 SystemConfigurationHome scHome = (SystemConfigurationHome) PortableRemoteObject.narrow(scRef, SystemConfigurationHome.class); 63 SystemConfiguration sc = scHome.create(); 64 65 Integer valueId = (Integer ) PropertyUtils.getSimpleProperty(form, "id"); 66 String action = (String ) PropertyUtils.getSimpleProperty(form, "action"); 67 if(valueId == null || valueId.intValue() <= 0) { 68 throw new SystemConfigurationException("Invalid custom field value id."); 69 } 70 71 CustomFieldValueModel customFieldValue = sc.getCustomFieldValue(valueId); 72 if(customFieldValue == null) { 73 throw new SystemConfigurationException("Invalid custom field value id."); 74 } 75 76 CustomFieldModel customField = sc.getCustomField(customFieldValue.getCustomFieldId()); 77 if(customField == null) { 78 throw new SystemConfigurationException("Invalid custom field id."); 79 } 80 CustomFieldValueModel[] values = customField.getOptions(); 81 for(int i = 0; i < values.length; i++) { 82 if(values[i] != null && valueId.equals(values[i].getId())) { 83 if("up".equalsIgnoreCase(action) && i > 0) { 84 int tempOrder = values[i].getSortOrder(); 85 values[i].setSortOrder(values[i - 1].getSortOrder()); 86 values[i - 1].setSortOrder(tempOrder); 87 values = sc.updateCustomFieldValues(customField.getId(), values); 88 } else if("down".equalsIgnoreCase(action) && i < (values.length - 1)) { 89 int tempOrder = values[i].getSortOrder(); 90 values[i].setSortOrder(values[i + 1].getSortOrder()); 91 values[i + 1].setSortOrder(tempOrder); 92 values = sc.updateCustomFieldValues(customField.getId(), values); 93 } 94 break; 95 } 96 } 97 98 sc.resetConfigurationCache(SystemConfigurationUtilities.TYPE_CUSTOMFIELD); 99 100 return new ActionForward(mapping.findForward("editcustomfield").getPath() + "?id=" + customField.getId() + "&action=update"); 101 } catch(SystemConfigurationException nfe) { 102 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidcustomfieldvalue")); 103 Logger.logDebug("Invalid custom field value id " + request.getParameter("id") + " specified."); 104 } catch(NumberFormatException nfe) { 105 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidcustomfieldvalue")); 106 Logger.logDebug("Invalid custom field value id " + request.getParameter("id") + " specified."); 107 } catch(Exception e) { 108 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.system")); 109 Logger.logError("System Error.", e); 110 } 111 if(! errors.isEmpty()) { 112 saveErrors(request, errors); 113 } 114 return mapping.findForward("error"); 115 } 116 117 } 118 | Popular Tags |