Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ExtServerManagementController.java =================================================================== diff -u --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ExtServerManagementController.java (revision 0) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ExtServerManagementController.java (revision 7bab4cf8a0eab2795022a136e55d1f64fa3721b8) @@ -0,0 +1,186 @@ +/**************************************************************** + * Copyright (C) 2006 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +package org.lamsfoundation.lams.admin.web.controller; + +import java.util.Collections; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.lang.StringUtils; +import org.lamsfoundation.lams.admin.web.form.ExtServerForm; +import org.lamsfoundation.lams.integration.ExtServer; +import org.lamsfoundation.lams.integration.service.IIntegrationService; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.MessageService; +import org.lamsfoundation.lams.util.WebUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Controller; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @author Fei Yang + */ +@Controller +@RequestMapping("/extserver") +public class ExtServerManagementController { + + @Autowired + private IIntegrationService integrationService; + @Autowired + private IUserManagementService userManagementService; + @Autowired + @Qualifier("adminMessageService") + private MessageService messageService; + + @RequestMapping(path = "/serverlist") + public String serverlist(HttpServletRequest request) throws Exception { + List extServers = integrationService.getAllExtServers(); + Collections.sort(extServers); + request.setAttribute("servers", extServers); + return "integration/serverlist"; + } + + @RequestMapping(path = "/edit") + public String edit(@ModelAttribute ExtServerForm extServerForm, HttpServletRequest request) throws Exception { + + Integer sid = WebUtil.readIntParam(request, "sid", true); + if (sid != null) { + ExtServer map = integrationService.getExtServer(sid); + BeanUtils.copyProperties(extServerForm, map); + } + return "integration/servermaintain"; + } + + @RequestMapping(path = "/serversave") + public String serversave(@ModelAttribute ExtServerForm extServerForm, BindingResult bindingResult, + HttpServletRequest request, HttpServletResponse response) throws Exception { + + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + + if (StringUtils.trimToNull(extServerForm.getServerid()) == null) { + errorMap.add("serverid", messageService.getMessage("error.required", + new Object[] { messageService.getMessage("sysadmin.serverid") })); + } + if (StringUtils.trimToNull(extServerForm.getServerkey()) == null) { + errorMap.add("serverkey", messageService.getMessage("error.required", + new Object[] { messageService.getMessage("sysadmin.serverkey") })); + } + if (StringUtils.trimToNull(extServerForm.getServername()) == null) { + errorMap.add("servername", messageService.getMessage("error.required", + new Object[] { messageService.getMessage("sysadmin.servername") })); + } + if (StringUtils.trimToNull(extServerForm.getPrefix()) == null) { + errorMap.add("prefix", messageService.getMessage("error.required", + new Object[] { messageService.getMessage("sysadmin.prefix") })); + } + if (StringUtils.trimToNull(extServerForm.getPrefix()) == null) { + errorMap.add("userinfoUrl", messageService.getMessage("error.required", + new Object[] { messageService.getMessage("sysadmin.userinfoUrl") })); + } + + Integer sid = extServerForm.getSid(); + if (errorMap.isEmpty()) {//check duplication + List listServer = userManagementService.findByProperty(ExtServer.class, "serverid", + extServerForm.getServerid()); + if (listServer != null && listServer.size() > 0) { + if (sid.equals(-1)) {//new map + errorMap.add("serverid", messageService.getMessage("error.not.unique", + new Object[] { messageService.getMessage("sysadmin.serverid") })); + } else { + ExtServer map = (ExtServer) listServer.get(0); + if (!map.getSid().equals(sid)) { + errorMap.add("serverid", messageService.getMessage("error.not.unique", + new Object[] { messageService.getMessage("sysadmin.serverid") })); + } + } + } + + List listPrefix = userManagementService.findByProperty(ExtServer.class, "prefix", + extServerForm.getPrefix()); + if (listPrefix != null && listPrefix.size() > 0) { + if (sid.equals(0)) {//new map + errorMap.add("prefix", messageService.getMessage("error.not.unique", + new Object[] { messageService.getMessage("sysadmin.prefix") })); + } else { + ExtServer map = (ExtServer) listPrefix.get(0); + if (!map.getSid().equals(sid)) { + errorMap.add("prefix", messageService.getMessage("error.not.unique", + new Object[] { messageService.getMessage("sysadmin.prefix") })); + } + } + } + } + + if (errorMap.isEmpty()) { + ExtServer map = null; + if (sid.equals(-1)) { + map = new ExtServer(); + BeanUtils.copyProperties(map, extServerForm); + map.setSid(null); + map.setServerTypeId(ExtServer.INTEGRATION_SERVER_TYPE); + } else { + map = integrationService.getExtServer(sid); + BeanUtils.copyProperties(map, extServerForm); + } + integrationService.saveExtServer(map); + return "forward:/extserver/serverlist.do"; + } else { + request.setAttribute("errorMap", errorMap); + return "integration/servermaintain"; + } + } + + @RequestMapping(path = "/disable") + public String disable(HttpServletRequest request) throws Exception { + Integer sid = WebUtil.readIntParam(request, "sid", false); + ExtServer map = integrationService.getExtServer(sid); + map.setDisabled(true); + integrationService.saveExtServer(map); + return "redirect:/extserver/serverlist.do"; + } + + @RequestMapping(path = "/enable") + public String enable(HttpServletRequest request) throws Exception { + Integer sid = WebUtil.readIntParam(request, "sid", false); + ExtServer map = integrationService.getExtServer(sid); + map.setDisabled(false); + integrationService.saveExtServer(map); + return "redirect:/extserver/serverlist.do"; + } + + @RequestMapping(path = "/delete") + public String delete(HttpServletRequest request) throws Exception { + Integer sid = WebUtil.readIntParam(request, "sid", false); + userManagementService.deleteById(ExtServer.class, sid); + return "redirect:/extserver/serverlist.do"; + } + +} Fisheye: Tag 7bab4cf8a0eab2795022a136e55d1f64fa3721b8 refers to a dead (removed) revision in file `lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ServerListController.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7bab4cf8a0eab2795022a136e55d1f64fa3721b8 refers to a dead (removed) revision in file `lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ServerMaintainController.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 7bab4cf8a0eab2795022a136e55d1f64fa3721b8 refers to a dead (removed) revision in file `lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ServerSaveController.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/SysAdminStartController.java =================================================================== diff -u -r29a37489a63e5a95f42a5ef5fd8a7daeb65c53c5 -r7bab4cf8a0eab2795022a136e55d1f64fa3721b8 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/SysAdminStartController.java (.../SysAdminStartController.java) (revision 29a37489a63e5a95f42a5ef5fd8a7daeb65c53c5) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/SysAdminStartController.java (.../SysAdminStartController.java) (revision 7bab4cf8a0eab2795022a136e55d1f64fa3721b8) @@ -59,7 +59,7 @@ links.add(new LinkBean("timezonemanagement/start.do", "admin.timezone.title")); links.add(new LinkBean("loginmaintain.do", "sysadmin.maintain.loginpage")); links.add(new LinkBean("signupManagement/start.do", "admin.signup.title")); - links.add(new LinkBean("serverlist.do", "sysadmin.maintain.external.servers")); + links.add(new LinkBean("extserver/serverlist.do", "sysadmin.maintain.external.servers")); links.add(new LinkBean("ltiConsumerManagement/start.do", "label.manage.tool.consumers")); links.add(new LinkBean("policyManagement/list.do", "admin.policies.title")); links.add(new LinkBean("toolcontentlist/start.do", "sysadmin.tool.management"));