Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java =================================================================== diff -u -rbcf1660d73964c8178a0ebf5808fd0edc0d55841 -ra80940742479722c5ce3d92519403d59f22964d8 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java (.../OrgManageAction.java) (revision bcf1660d73964c8178a0ebf5808fd0edc0d55841) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java (.../OrgManageAction.java) (revision a80940742479722c5ce3d92519403d59f22964d8) @@ -35,6 +35,7 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationType; import org.lamsfoundation.lams.usermanagement.UserOrganisation; @@ -90,7 +91,8 @@ orgManageForm.setType(org.getOrganisationType().getOrganisationTypeId()); log.debug("orgType:"+orgManageForm.getType()); List orgManageBeans = new ArrayList(); - if(service.isUserSysAdmin(username)){ + //if(service.isUserSysAdmin(username)){ + if(request.isUserInRole(Role.SYSADMIN)){ Integer type; if(orgManageForm.getType().equals(OrganisationType.ROOT_TYPE)){ type = OrganisationType.COURSE_TYPE; Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java =================================================================== diff -u -rbcf1660d73964c8178a0ebf5808fd0edc0d55841 -ra80940742479722c5ce3d92519403d59f22964d8 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java (.../OrgSaveAction.java) (revision bcf1660d73964c8178a0ebf5808fd0edc0d55841) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java (.../OrgSaveAction.java) (revision a80940742479722c5ce3d92519403d59f22964d8) @@ -22,14 +22,25 @@ */ package org.lamsfoundation.lams.admin.web; +import java.util.Date; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.log4j.Logger; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; -import org.apache.struts.validator.DynaValidatorForm; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.struts.action.DynaActionForm; +import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.web.util.HttpSessionManager; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; /** * @version @@ -50,21 +61,58 @@ * name="OrganisationForm" * input=".organisation" * scope="request" - * validate="true" - * + * validate="false" + * + * @struts:action-forward name="organisation" + * path=".organisation" * @struts:action-forward name="orglist" - * path="orgmanage.do" + * path="/orgmanage.do" */ public class OrgSaveAction extends Action { + private static Logger log = Logger.getLogger(OrgSaveAction.class); + + private static WebApplicationContext ctx = WebApplicationContextUtils + .getWebApplicationContext(HttpSessionManager.getInstance() + .getServletContext()); + + private static IUserManagementService service = (IUserManagementService) ctx + .getBean("userManagementServiceTarget"); + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ - //TODO save the organisation - DynaValidatorForm orgForm = (DynaValidatorForm)form; - request.setAttribute("org",orgForm.get("parentId")); - return mapping.findForward("orglist"); + + DynaActionForm orgForm = (DynaActionForm)form; + + if(isCancelled(request)){ + request.setAttribute("org",orgForm.get("parentId")); + return mapping.findForward("orglist"); + } + ActionMessages errors = new ActionMessages(); + if((orgForm.get("name")==null)||(((String)orgForm.getString("name").trim()).length()==0)){ + errors.add("name",new ActionMessage("error.name.required")); + } + if(errors.isEmpty()){ + Organisation org = new Organisation(); + BeanUtils.copyProperties(org,orgForm); + log.debug("orgId in orgForm:"+(Integer)orgForm.get("orgId")); + if((Integer)orgForm.get("orgId")!=0){ + org.setCreateDate(service.getOrganisationById((Integer)orgForm.get("orgId")).getCreateDate()); + }else{ + org.setCreateDate(new Date()); + } + org.setParentOrganisation(service.getOrganisationById((Integer)orgForm.get("parentId"))); + org.setOrganisationState(service.getOrganisationStateById((Integer)orgForm.get("stateId"))); + org.setOrganisationType(service.getOrganisationTypeById((Integer)orgForm.get("typeId"))); + service.saveOrganisation(org,service.getUserByLogin(request.getRemoteUser()).getUserId()); + request.setAttribute("org",orgForm.get("parentId")); + return mapping.findForward("orglist"); + }else{ + saveErrors(request,errors); + return mapping.findForward("organisation"); + } } } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java =================================================================== diff -u -rbcf1660d73964c8178a0ebf5808fd0edc0d55841 -ra80940742479722c5ce3d92519403d59f22964d8 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java (.../OrganisationAction.java) (revision bcf1660d73964c8178a0ebf5808fd0edc0d55841) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java (.../OrganisationAction.java) (revision a80940742479722c5ce3d92519403d59f22964d8) @@ -23,21 +23,20 @@ /* $$Id$$ */ package org.lamsfoundation.lams.admin.web; -import java.io.IOException; +import java.util.List; -import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.BeanUtils; import org.apache.log4j.Logger; -import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; -import org.apache.struts.validator.DynaValidatorForm; +import org.apache.struts.action.DynaActionForm; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; @@ -53,7 +52,7 @@ * validate="false" * * @struts:action-forward name="organisation" path=".organisation" - * @struts:action-forward name="orglist" path="orgmanage.do" + * @struts:action-forward name="orglist" path="/orgmanage.do" */ public class OrganisationAction extends LamsDispatchAction { @@ -66,21 +65,35 @@ private static IUserManagementService service = (IUserManagementService) ctx .getBean("userManagementServiceTarget"); + private static List countries = service.getAllCountries(); + + private static List languages = service.getAllLanguages(); + + private static List status = service.getAllOrgnisationStates(); + public ActionForward edit(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception{ - if(request.getAttribute("orgId")!=null){ - Organisation org = service.getOrganisationById((Integer)request.getAttribute("orgId")); - DynaValidatorForm orgForm = (DynaValidatorForm)form; - orgForm.set("parentId",org.getParentOrganisation().getOrganisationId()); - //orgForm.set("name",org.getName()); - //orgForm.set("code",org.getCode()); - //orgForm.set("description",org.getDescription()); + Integer orgId = WebUtil.readIntParam(request,"orgId",true); + if(orgId != null){//editing existing organisation + Organisation org = service.getOrganisationById(orgId); + DynaActionForm orgForm = (DynaActionForm)form; BeanUtils.copyProperties(orgForm,org); + log.debug("Struts Pupulated orgId:"+(Integer)orgForm.get("orgId")); + orgForm.set("parentId",org.getParentOrganisation().getOrganisationId()); + orgForm.set("parentName",org.getParentOrganisation().getName()); orgForm.set("typeId",org.getOrganisationType().getOrganisationTypeId()); + orgForm.set("stateId",org.getOrganisationState().getOrganisationStateId()); } + request.getSession().setAttribute("countries",countries); + request.getSession().setAttribute("languages",languages); + request.getSession().setAttribute("status",status); return mapping.findForward("organisation"); } public ActionForward remove(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response){ + Integer orgId = WebUtil.readIntParam(request,"orgId"); + service.deleteOrganisationById(orgId); + Integer parentId = WebUtil.readIntParam(request,"parentId"); + request.setAttribute("org",parentId); return mapping.findForward("orglist"); }