Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java
===================================================================
diff -u -r4504c57e15e5d7164d16ea625c183d47e85cded0 -r4ef740155321a3d46583770e5ea58e56719597b2
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java (.../OrgManageAction.java) (revision 4504c57e15e5d7164d16ea625c183d47e85cded0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java (.../OrgManageAction.java) (revision 4ef740155321a3d46583770e5ea58e56719597b2)
@@ -22,19 +22,20 @@
*/
package org.lamsfoundation.lams.admin.web;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
+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.struts.action.Action;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
+import org.apache.tomcat.util.json.JSONArray;
+import org.apache.tomcat.util.json.JSONException;
+import org.apache.tomcat.util.json.JSONObject;
import org.lamsfoundation.lams.admin.service.AdminServiceProxy;
import org.lamsfoundation.lams.admin.web.form.OrgManageForm;
import org.lamsfoundation.lams.security.ISecurityService;
@@ -44,36 +45,36 @@
import org.lamsfoundation.lams.usermanagement.Role;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
+import org.lamsfoundation.lams.usermanagement.service.UserManagementService;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
+import org.lamsfoundation.lams.web.action.LamsDispatchAction;
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
/**
- * @version
- *
*
* View Source
*
*
* @author Fei Yang
- *
- * Created at 20:29:13 on 2006-6-5
- */
-
-/**
- * struts doclets
*
- * @struts:action path="/orgmanage" name="OrgManageForm" input=".orglist" scope="request" validate="false"
+ * @struts:action path="/orgmanage" parameter="dispatch" name="OrgManageForm" input=".orglist" scope="request" validate="false"
*
* @struts:action-forward name="orglist" path=".orglist"
*/
-public class OrgManageAction extends Action {
+public class OrgManageAction extends LamsDispatchAction {
+
+ private static IUserManagementService userManagementService;
@SuppressWarnings("unchecked")
@Override
- public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
+ initServices();
+
// Get organisation whose child organisations we will populate the OrgManageForm with
Integer orgId = WebUtil.readIntParam(request, "org", true);
if (orgId == null) {
@@ -87,7 +88,6 @@
// get logged in user's id
Integer userId = ((UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER)).getUserID();
ISecurityService securityService = AdminServiceProxy.getSecurityService(getServlet().getServletContext());
- IUserManagementService userManagementService = AdminServiceProxy.getService(getServlet().getServletContext());
Organisation org = null;
boolean isRootOrganisation = false;
@@ -142,32 +142,6 @@
request.setAttribute("parentGroupName", pOrg.getName());
request.setAttribute("parentGroupId", pOrg.getOrganisationId());
} else {
- List orgManageBeans = new ArrayList();
- // the organisation type of the children
- Integer typeId = (orgManageForm.getType().equals(OrganisationType.ROOT_TYPE) ? OrganisationType.COURSE_TYPE
- : OrganisationType.CLASS_TYPE);
-
- HashMap properties = new HashMap();
- properties.put("organisationType.organisationTypeId", typeId);
- properties.put("organisationState.organisationStateId", orgManageForm.getStateId());
- List organisations = userManagementService.findByProperties(Organisation.class, properties);
-
- for (Organisation organisation : organisations) {
- Organisation parentOrg = (typeId.equals(OrganisationType.CLASS_TYPE))
- ? organisation.getParentOrganisation() : organisation;
- // do not list this org if it is not a child of the requested parent
- if (typeId.equals(OrganisationType.CLASS_TYPE) && !parentOrg.getOrganisationId().equals(orgId)) {
- continue;
- }
-
- OrgManageBean orgManageBean = new OrgManageBean();
- BeanUtils.copyProperties(orgManageBean, organisation);
- orgManageBean.setStatus(organisation.getOrganisationState().getDescription());
- orgManageBean.setEditable(true);
- orgManageBeans.add(orgManageBean);
- }
- Collections.sort(orgManageBeans);
- orgManageForm.setOrgManageBeans(orgManageBeans);
request.setAttribute("OrgManageForm", orgManageForm);
// display org info
@@ -181,4 +155,81 @@
request.setAttribute("manageGlobalRoles", request.isUserInRole(Role.SYSADMIN));
return mapping.findForward("orglist");
}
+
+ /**
+ * Returns list of organisations for .
+ */
+ public ActionForward getOrgs(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse res) throws IOException, ServletException, JSONException {
+ initServices();
+
+ Integer parentOrgId = WebUtil.readIntParam(request, "parentOrgId");
+ Integer stateId = WebUtil.readIntParam(request, "stateId");
+ Integer typeIdParam = WebUtil.readIntParam(request, "type");
+ // the organisation type of the children
+ Integer typeId = (typeIdParam.equals(OrganisationType.ROOT_TYPE) ? OrganisationType.COURSE_TYPE
+ : OrganisationType.CLASS_TYPE);
+ String searchString = WebUtil.readStrParam(request, "fcol[1]", true);
+
+ // paging parameters of tablesorter
+ int size = WebUtil.readIntParam(request, "size");
+ int page = WebUtil.readIntParam(request, "page");
+ Integer isSort1 = WebUtil.readIntParam(request, "column[0]", true);
+ Integer isSort2 = WebUtil.readIntParam(request, "column[1]", true);
+ Integer isSort3 = WebUtil.readIntParam(request, "column[2]", true);
+ Integer isSort4 = WebUtil.readIntParam(request, "column[3]", true);
+
+ String sortBy = "";
+ String sortOrder = "";
+ if (isSort1 != null) {
+ sortBy = "id";
+ sortOrder = isSort1.equals(0) ? "ASC" : "DESC";
+
+ } else if (isSort2 != null) {
+ sortBy = "name";
+ sortOrder = isSort2.equals(0) ? "ASC" : "DESC";
+
+ } else if (isSort3 != null) {
+ sortBy = "code";
+ sortOrder = isSort3.equals(0) ? "ASC" : "DESC";
+
+ } else if (isSort4 != null) {
+ sortBy = "description";
+ sortOrder = isSort4.equals(0) ? "ASC" : "DESC";
+
+ }
+
+ List organisations = userManagementService.getPagedCourses(parentOrgId, typeId, stateId, page,
+ size, sortBy, sortOrder, searchString);
+
+ JSONObject responcedata = new JSONObject();
+ responcedata.put("total_rows", userManagementService.getCountCoursesByParentCourseAndTypeAndState(parentOrgId,
+ typeId, stateId, searchString));
+
+ JSONArray rows = new JSONArray();
+ for (Organisation organisation : organisations) {
+
+ JSONObject responseRow = new JSONObject();
+ responseRow.put("id", organisation.getOrganisationId());
+ String orgName = organisation.getName() == null ? "" : organisation.getName();
+ responseRow.put("name", StringEscapeUtils.escapeHtml(orgName));
+ String orgCode = organisation.getCode() == null ? "" : organisation.getCode();
+ responseRow.put("code", StringEscapeUtils.escapeHtml(orgCode));
+ String orgDescription = organisation.getDescription() == null ? "" : organisation.getDescription();
+ responseRow.put("description", StringEscapeUtils.escapeHtml(orgDescription));
+
+ rows.put(responseRow);
+ }
+ responcedata.put("rows", rows);
+ res.setContentType("application/json;charset=utf-8");
+ res.getWriter().print(new String(responcedata.toString()));
+ return null;
+ }
+
+ private void initServices() {
+ if (userManagementService == null) {
+ WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServlet().getServletContext());
+ userManagementService = (UserManagementService) ctx.getBean("userManagementService");
+ }
+ }
}
\ No newline at end of file
Index: lams_admin/web/organisation/list.jsp
===================================================================
diff -u -ra7738613d14072a7cb276a890ec10a699bd9657b -r4ef740155321a3d46583770e5ea58e56719597b2
--- lams_admin/web/organisation/list.jsp (.../list.jsp) (revision a7738613d14072a7cb276a890ec10a699bd9657b)
+++ lams_admin/web/organisation/list.jsp (.../list.jsp) (revision 4ef740155321a3d46583770e5ea58e56719597b2)
@@ -1,37 +1,119 @@
<%@ include file="/taglibs.jsp"%>
<%@ page import="org.lamsfoundation.lams.usermanagement.Role" %>
+
-
-
-
-
-
+
+
+
+
+
+
+
+
">
@@ -61,11 +143,13 @@
" />
-
+
+
- :
+
+ :
@@ -134,11 +218,13 @@
" />
-
+
+
- :
+
+ :
@@ -180,9 +266,9 @@