Index: lams_admin/conf/language/ApplicationResources.properties =================================================================== diff -u -r404a85b1c8e5944de23e52dd91c7d88067f6864c -r3f5083ee75c913e287cd44cc93653c1b5012a64b --- lams_admin/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 404a85b1c8e5944de23e52dd91c7d88067f6864c) +++ lams_admin/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -211,3 +211,12 @@ #======= End labels: Exported 202 labels for en AU ===== +error.no.sysadmin.priviledge=You have no priviledge to do this. +sysadmin.library.management=Learning Library Management +sysadmin.library.totals=learning library(ies) totally +sysadmin.library.title=Title +sysadmin.library.description=Description +sysadmin.library.activity.title=Activity title +sysadmin.library.activity.description=Activity description +sysadmin.library.createtime=Create time +sysadmin.function=Function \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/LibraryManageAction.java =================================================================== diff -u --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/LibraryManageAction.java (revision 0) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/LibraryManageAction.java (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -0,0 +1,129 @@ +package org.lamsfoundation.lams.admin.web; + +import java.util.Iterator; +import java.util.List; +import java.util.Vector; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +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.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.lamsfoundation.lams.learningdesign.dto.AuthoringActivityDTO; +import org.lamsfoundation.lams.learningdesign.dto.LearningLibraryDTO; +import org.lamsfoundation.lams.learningdesign.dto.LibraryActivityDTO; +import org.lamsfoundation.lams.learningdesign.service.ILearningDesignService; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.WebUtil; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + + +/** + * Manage the learning libraries to allow sysadmin to enable/disable a libraries. + * + * @struts:action path="/libraryManage" + * validate="false" + * @struts:action-forward name="success" + * path=".librarylist" + * @author steven + * + */ +public class LibraryManageAction extends Action { + public static final String LEARNING_DESIGN_SERVICE_BEAN_NAME = "learningDesignService"; + private static final String USER_MANAGEMENT_SERVICE_BEAN_NAME = "userManagementService"; + public static final String REQUEST_LIBRARIES = "libraries"; + public static final String PARAM_LIBRARY_ID = "libraryID"; + public static final String PARAM_ACTION = "action"; + public static final String ERROR_MSG_NO_PRIVILEDGE = "error.no.sysadmin.priviledge"; + + /** + * Entry of STRUST action + */ + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + String param = request.getParameter(PARAM_ACTION); + // --------------------------- + if (StringUtils.equals(param,"enable")) { + if(!checkPriviledge(request)){ + return mapping.findForward("success"); + } + enableLibray(mapping, form, request, response); + } + if (StringUtils.equals(param,"disable")) { + disableLibray(mapping, form, request, response); + } + + // --------------------------- + // Display all libraries + ILearningDesignService ldService = getLearningDesignService(); + List lds = ldService.getAllLearningLibraryDetails(false); + + //handle multiple activities library: only left on activity which has learning_libarayIid populated + for (LearningLibraryDTO libraryDTO : lds) { + Vector activities = libraryDTO.getTemplateActivities(); + if(activities != null){ + Iterator actIter = activities.iterator(); + while(actIter.hasNext()){ + LibraryActivityDTO act = actIter.next(); + if(act.getLearningLibraryID() == null) + actIter.remove(); + } + } + } + request.setAttribute(REQUEST_LIBRARIES, lds); + return mapping.findForward("success"); + } + + + + private void disableLibray(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + Long learningLibraryId = WebUtil.readLongParam(request, PARAM_LIBRARY_ID, false); + ILearningDesignService ldService = getLearningDesignService(); + ldService.setValid(learningLibraryId,false); + } + + private void enableLibray(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + Long learningLibraryId = WebUtil.readLongParam(request, PARAM_LIBRARY_ID, false); + ILearningDesignService ldService = getLearningDesignService(); + ldService.setValid(learningLibraryId,true); + + } + + //************************************************************************************* + // Private method + //************************************************************************************* + /** + * Return Service bean. + */ + private ILearningDesignService getLearningDesignService() { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + return (ILearningDesignService) wac.getBean(LEARNING_DESIGN_SERVICE_BEAN_NAME); + } + private IUserManagementService getUserManagementService() { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + return (IUserManagementService) wac.getBean(USER_MANAGEMENT_SERVICE_BEAN_NAME); + } + /** + * Double check priviledge : is sys admin? + * @param request + * @return + */ + private boolean checkPriviledge(HttpServletRequest request) { + if(!getUserManagementService().isUserSysAdmin()){ + ActionMessages errors = new ActionMessages(); + errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(ERROR_MSG_NO_PRIVILEDGE)); + this.saveErrors(request, errors); + return false; + } + + return true; + } +} Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/SysAdminStartAction.java =================================================================== diff -u -r91867eded7ee20f399144d4d9061d92723b70368 -r3f5083ee75c913e287cd44cc93653c1b5012a64b --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/SysAdminStartAction.java (.../SysAdminStartAction.java) (revision 91867eded7ee20f399144d4d9061d92723b70368) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/SysAdminStartAction.java (.../SysAdminStartAction.java) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -74,6 +74,8 @@ links.add(linkBean); linkBean = new LinkBean("register.do", "sysadmin.register.server"); links.add(linkBean); + linkBean = new LinkBean("libraryManage.do", "sysadmin.library.management"); + links.add(linkBean); } else if (request.isUserInRole(Role.AUTHOR_ADMIN)) { LinkBean linkBean = new LinkBean("toolcontentlist.do", "sysadmin.edit.default.tool.content"); links.add(linkBean); Index: lams_admin/web/WEB-INF/lams.tld =================================================================== diff -u -r424e7c68ab302a68af3cfd5341c50cb164554091 -r3f5083ee75c913e287cd44cc93653c1b5012a64b --- lams_admin/web/WEB-INF/lams.tld (.../lams.tld) (revision 424e7c68ab302a68af3cfd5341c50cb164554091) +++ lams_admin/web/WEB-INF/lams.tld (.../lams.tld) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -434,5 +434,35 @@ ImgButtonWrapper /WEB-INF/tags/ImgButtonWrapper.tag + + textarea + org.lamsfoundation.lams.web.tag.LAMSMultiLinesTextareaTag + JSP + true + + Render text exactly same as original input, which even won't escape the input HTML tag. + + + + + name + true + true + + + + + id + false + true + + + + + onchange + false + true + + Index: lams_admin/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u -r570bcc3eaf789d638c08cb96e0fec3e4a9ba6167 -r3f5083ee75c913e287cd44cc93653c1b5012a64b --- lams_admin/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision 570bcc3eaf789d638c08cb96e0fec3e4a9ba6167) +++ lams_admin/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -208,6 +208,18 @@ /> + + + + + + - - - - + \ No newline at end of file Index: lams_admin/web/WEB-INF/tags/ExportPortOutput.tag =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r3f5083ee75c913e287cd44cc93653c1b5012a64b --- lams_admin/web/WEB-INF/tags/ExportPortOutput.tag (.../ExportPortOutput.tag) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_admin/web/WEB-INF/tags/ExportPortOutput.tag (.../ExportPortOutput.tag) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -38,7 +38,7 @@
  • - "/> + " target="_blank"/> Index: lams_admin/web/WEB-INF/tags/FCKEditor.tag =================================================================== diff -u -r2deb6430189162e43922f84f227edb535b851ca2 -r3f5083ee75c913e287cd44cc93653c1b5012a64b --- lams_admin/web/WEB-INF/tags/FCKEditor.tag (.../FCKEditor.tag) (revision 2deb6430189162e43922f84f227edb535b851ca2) +++ lams_admin/web/WEB-INF/tags/FCKEditor.tag (.../FCKEditor.tag) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -5,7 +5,7 @@ <%@ attribute name="id" required="true" rtexprvalue="true"%> <%@ attribute name="value" required="true" rtexprvalue="true"%> <%@ attribute name="toolbarSet" required="false" rtexprvalue="true"%> -<%@ attribute name="contentFolderID" required="true" rtexprvalue="true"%> +<%@ attribute name="contentFolderID" required="false" rtexprvalue="true"%> Index: lams_admin/web/WEB-INF/tiles/tiles-defs.xml =================================================================== diff -u -r5624470db4dc327f73039c1866679fc4785608e9 -r3f5083ee75c913e287cd44cc93653c1b5012a64b --- lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 5624470db4dc327f73039c1866679fc4785608e9) +++ lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -70,6 +70,10 @@ + + + + Index: lams_admin/web/WEB-INF/web.xml =================================================================== diff -u -ra6a457981951b15da97d4d49cbd3c1c9ac574dd7 -r3f5083ee75c913e287cd44cc93653c1b5012a64b --- lams_admin/web/WEB-INF/web.xml (.../web.xml) (revision a6a457981951b15da97d4d49cbd3c1c9ac574dd7) +++ lams_admin/web/WEB-INF/web.xml (.../web.xml) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -213,8 +213,8 @@ AUTHOR ADMIN - COURSE MANAGER - COURSE ADMIN + GROUP MANAGER + GROUP ADMIN SYSADMIN @@ -234,10 +234,10 @@ AUTHOR ADMIN - COURSE MANAGER + GROUP MANAGER - COURSE ADMIN + GROUP ADMIN SYSADMIN Index: lams_admin/web/librarylist.jsp =================================================================== diff -u --- lams_admin/web/librarylist.jsp (revision 0) +++ lams_admin/web/librarylist.jsp (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b) @@ -0,0 +1,37 @@ +<%@ include file="/taglibs.jsp"%> + +

    :

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + +
    +

    ${fn:length(libraries)}

    \ No newline at end of file