Index: idea_project/.idea/inspectionProfiles/Project_Default.xml
===================================================================
diff -u -reccd6838790a4369b6788e48fb5ae5851622fe35 -ra5caeb34843b9f5ac91452490ec06d411e0e968a
--- idea_project/.idea/inspectionProfiles/Project_Default.xml (.../Project_Default.xml) (revision eccd6838790a4369b6788e48fb5ae5851622fe35)
+++ idea_project/.idea/inspectionProfiles/Project_Default.xml (.../Project_Default.xml) (revision a5caeb34843b9f5ac91452490ec06d411e0e968a)
@@ -2,6 +2,9 @@
+
+
+
\ No newline at end of file
Index: lams_central/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -r15d4338b7ff28f2d39b08f091a8f408378fee502 -ra5caeb34843b9f5ac91452490ec06d411e0e968a
--- lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 15d4338b7ff28f2d39b08f091a8f408378fee502)
+++ lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision a5caeb34843b9f5ac91452490ec06d411e0e968a)
@@ -73,6 +73,7 @@
index.addlesson = Add Lesson
index.monitor = Monitor
index.dummymonitor = Dummy Monitor
+index.teamwork = Teamwork
title.import.result = Import tool content result
title.import = Import tool content
title.import.instruction = Please choose LAMS design to import.
@@ -1148,4 +1149,4 @@
label.questions.choice.collection.new.option = [Add new collection]
label.questions.choice.collection.new.prompt = Enter a name for the new collection:
label.questions.choice.generate.more = Generate more questions
-label.questions.choice.generate.more.error = Error while generating more questions
+label.questions.choice.generate.more.error = Error while generating more questions
\ No newline at end of file
Index: lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupController.java
===================================================================
diff -u -rb6d55d571ea99a87a367fec36df40ec45627b0ea -ra5caeb34843b9f5ac91452490ec06d411e0e968a
--- lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupController.java (.../DisplayGroupController.java) (revision b6d55d571ea99a87a367fec36df40ec45627b0ea)
+++ lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupController.java (.../DisplayGroupController.java) (revision a5caeb34843b9f5ac91452490ec06d411e0e968a)
@@ -22,20 +22,6 @@
package org.lamsfoundation.lams.web;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import javax.naming.NamingException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import org.lamsfoundation.lams.index.IndexLessonBean;
import org.lamsfoundation.lams.index.IndexLinkBean;
import org.lamsfoundation.lams.index.IndexOrgBean;
@@ -44,13 +30,7 @@
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.service.LessonService;
import org.lamsfoundation.lams.security.ISecurityService;
-import org.lamsfoundation.lams.usermanagement.Organisation;
-import org.lamsfoundation.lams.usermanagement.OrganisationState;
-import org.lamsfoundation.lams.usermanagement.OrganisationType;
-import org.lamsfoundation.lams.usermanagement.Role;
-import org.lamsfoundation.lams.usermanagement.User;
-import org.lamsfoundation.lams.usermanagement.UserOrganisationCollapsed;
-import org.lamsfoundation.lams.usermanagement.UserOrganisationRole;
+import org.lamsfoundation.lams.usermanagement.*;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.util.Configuration;
import org.lamsfoundation.lams.util.ConfigurationKeys;
@@ -61,6 +41,13 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
+import javax.naming.NamingException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.sql.SQLException;
+import java.util.*;
+import java.util.Map.Entry;
+
/**
* @author jliew
*/
@@ -106,8 +93,8 @@
request.isUserInRole(Role.APPADMIN) || request.isUserInRole(Role.SYSADMIN));
request.setAttribute("orgBean", iob);
- if (org.getEnableSingleActivityLessons()
- && (roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(Role.ROLE_MONITOR))) {
+ if (org.getEnableSingleActivityLessons() && (roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(
+ Role.ROLE_MONITOR))) {
// if single activity lessons are enabled, put sorted list of tools
request.setAttribute("tools", learningDesignService.getToolDTOs(false, false, request.getRemoteUser()));
}
@@ -132,10 +119,19 @@
// First, populate header part
List links = new ArrayList<>();
List moreLinks = new ArrayList<>();
+
+ boolean isSpTeamworkEnabled = Configuration.isLamsModuleAvailable(Configuration.TEAMWORK_MODULE_CLASS);
+ if (isSpTeamworkEnabled) {
+ moreLinks.add(
+ new IndexLinkBean("index.teamwork", "javascript:openTeamworkWindow()", "fa fa-fw fa-handshake",
+ null));
+ }
+
if (isAppAdmin) {
if (orgBean.getType().equals(OrganisationType.COURSE_TYPE)) {
- moreLinks.add(new IndexLinkBean("index.classman",
- "javascript:openOrgManagement(" + organisationId + ")", "fa fa-fw fa-users", null));
+ moreLinks.add(
+ new IndexLinkBean("index.classman", "javascript:openOrgManagement(" + organisationId + ")",
+ "fa fa-fw fa-users", null));
}
}
@@ -147,11 +143,13 @@
if (roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(Role.ROLE_MONITOR)) {
if (orgBean.getType().equals(OrganisationType.COURSE_TYPE)) {
if ((!isAppAdmin) && (roles.contains(Role.ROLE_GROUP_MANAGER))) {
- moreLinks.add(new IndexLinkBean("index.classman",
- "javascript:openOrgManagement(" + organisationId + ")", "fa fa-fw fa-ellipsis-v", null));
+ moreLinks.add(
+ new IndexLinkBean("index.classman", "javascript:openOrgManagement(" + organisationId + ")",
+ "fa fa-fw fa-ellipsis-v", null));
}
- moreLinks.add(new IndexLinkBean("index.orggroup",
- "javascript:showOrgGroupingDialog(" + organisationId + ")", "fa fa-fw fa-users", null));
+ moreLinks.add(
+ new IndexLinkBean("index.orggroup", "javascript:showOrgGroupingDialog(" + organisationId + ")",
+ "fa fa-fw fa-users", null));
String name = org.getEnableSingleActivityLessons() ? "index.addlesson.single" : "index.addlesson";
links.add(new IndexLinkBean(name, "javascript:showAddLessonDialog(" + organisationId + ")",
@@ -185,14 +183,16 @@
"index.coursegradebook.tooltip"));
if (Configuration.getAsBoolean(ConfigurationKeys.ALLOW_DIRECT_LESSON_LAUNCH)) {
- String orgUrl = Configuration.get(ConfigurationKeys.SERVER_URL) + "r/"
- + WebUtil.ORG_SHORTENING_PREFIX + WebUtil.encodeIdForDirectLaunch(organisationId);
+ String orgUrl =
+ Configuration.get(ConfigurationKeys.SERVER_URL) + "r/" + WebUtil.ORG_SHORTENING_PREFIX
+ + WebUtil.encodeIdForDirectLaunch(organisationId);
link = "javascript:copyOrgUrlToClipboard('" + orgUrl + "')";
moreLinks.add(new IndexLinkBean("index.organisation.link", link, "fa fa-fw fa-clipboard",
"index.organisation.link.tooltip"));
}
} else {// CLASS_TYPE
- String name = org.getParentOrganisation().getEnableSingleActivityLessons() ? "index.addlesson.single"
+ String name = org.getParentOrganisation().getEnableSingleActivityLessons()
+ ? "index.addlesson.single"
: "index.addlesson";
links.add(new IndexLinkBean(name, "javascript:showAddLessonDialog(" + organisationId + ")",
"fa fa-fw fa-plus", null));
@@ -202,11 +202,11 @@
}
}
- if (Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE) && org.getEnableKumalive()
- && (roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(Role.ROLE_MONITOR)
- || roles.contains(Role.ROLE_LEARNER))) {
- boolean isKumaliveDisabledForOrganisation = learnerService
- .isKumaliveDisabledForOrganisation(organisationId);
+ if (Configuration.getAsBoolean(ConfigurationKeys.ALLOW_KUMALIVE) && org.getEnableKumalive() && (
+ roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(Role.ROLE_MONITOR) || roles.contains(
+ Role.ROLE_LEARNER))) {
+ boolean isKumaliveDisabledForOrganisation = learnerService.isKumaliveDisabledForOrganisation(
+ organisationId);
boolean isMonitor = roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(Role.ROLE_MONITOR);
boolean disabled = !isMonitor && isKumaliveDisabledForOrganisation;
links.add(new IndexLinkBean(isMonitor ? "index.kumalive.teacher" : "index.kumalive",
@@ -233,19 +233,19 @@
// create subgroup beans
if (orgBean.getType().equals(OrganisationType.COURSE_TYPE)) {
Set childOrganisations = org.getChildOrganisations();
- boolean isCollapsingSubcoursesEnabled = Configuration
- .getAsBoolean(ConfigurationKeys.ENABLE_COLLAPSING_SUBCOURSES);
+ boolean isCollapsingSubcoursesEnabled = Configuration.getAsBoolean(
+ ConfigurationKeys.ENABLE_COLLAPSING_SUBCOURSES);
List userOrganisationsCollapsed = isCollapsingSubcoursesEnabled
? userManagementService.getChildOrganisationsCollapsedByUser(org.getOrganisationId(), userId)
: null;
List childOrgBeans = new ArrayList<>();
for (Organisation childOrganisation : childOrganisations) {
- if (OrganisationState.ACTIVE
- .equals(childOrganisation.getOrganisationState().getOrganisationStateId())) {
+ if (OrganisationState.ACTIVE.equals(
+ childOrganisation.getOrganisationState().getOrganisationStateId())) {
List classRoles = new ArrayList<>();
- List userOrganisationRoles = userManagementService
- .getUserOrganisationRoles(childOrganisation.getOrganisationId(), username);
+ List userOrganisationRoles = userManagementService.getUserOrganisationRoles(
+ childOrganisation.getOrganisationId(), username);
// don't list the subgroup if user is not a member, and not a group admin/manager
if (((userOrganisationRoles == null) || userOrganisationRoles.isEmpty()) && !isAppAdmin
&& !roles.contains(Role.ROLE_GROUP_MANAGER)) {
@@ -300,8 +300,8 @@
LinkedList lessonLinks = new LinkedList<>();
String url = null;
Integer lessonStateId = bean.getState();
- if (roles.contains(Role.ROLE_LEARNER)
- && (lessonStateId.equals(Lesson.STARTED_STATE) || lessonStateId.equals(Lesson.FINISHED_STATE))) {
+ if (roles.contains(Role.ROLE_LEARNER) && (lessonStateId.equals(Lesson.STARTED_STATE)
+ || lessonStateId.equals(Lesson.FINISHED_STATE))) {
url = "javascript:openLearner(" + bean.getId() + ")";
}
@@ -327,8 +327,9 @@
}
if (isGroupManagerOrMonitor) {
- lessonLinks.addFirst(new IndexLinkBean("index.monitor",
- "javascript:openMonitorLesson(" + bean.getId() + ")", "fa fa-fw fa-heartbeat", null));
+ lessonLinks.addFirst(
+ new IndexLinkBean("index.monitor", "javascript:openMonitorLesson(" + bean.getId() + ")",
+ "fa fa-fw fa-heartbeat", null));
}
// Adding lesson notifications links if enabled
@@ -364,4 +365,4 @@
private User getUser(String login) {
return (User) userManagementService.findByProperty(User.class, "login", login).get(0);
}
-}
+}
\ No newline at end of file
Index: lams_central/web/includes/javascript/openUrls.js
===================================================================
diff -u -r024ce0c12173cc7513122f539368873c52b03540 -ra5caeb34843b9f5ac91452490ec06d411e0e968a
--- lams_central/web/includes/javascript/openUrls.js (.../openUrls.js) (revision 024ce0c12173cc7513122f539368873c52b03540)
+++ lams_central/web/includes/javascript/openUrls.js (.../openUrls.js) (revision a5caeb34843b9f5ac91452490ec06d411e0e968a)
@@ -204,4 +204,8 @@
customWin.focus();
}
}
+}
+
+function openTeamworkWindow (){
+ window.open('teamwork/show.do', '_blank');
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java
===================================================================
diff -u -r784731558fee35bec1bcb6ce76ecf352b5856db5 -ra5caeb34843b9f5ac91452490ec06d411e0e968a
--- lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java (.../Configuration.java) (revision 784731558fee35bec1bcb6ce76ecf352b5856db5)
+++ lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java (.../Configuration.java) (revision a5caeb34843b9f5ac91452490ec06d411e0e968a)
@@ -23,17 +23,6 @@
package org.lamsfoundation.lams.util;
-import java.io.IOException;
-import java.net.ConnectException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.jboss.as.controller.client.ModelControllerClient;
@@ -42,17 +31,13 @@
import org.lamsfoundation.lams.config.ConfigurationItem;
import org.lamsfoundation.lams.config.dao.IConfigurationDAO;
import org.lamsfoundation.lams.usermanagement.WorkspaceFolder;
-import org.quartz.JobBuilder;
-import org.quartz.JobDetail;
-import org.quartz.JobKey;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
-import org.quartz.SimpleScheduleBuilder;
-import org.quartz.Trigger;
-import org.quartz.TriggerBuilder;
-import org.quartz.TriggerKey;
+import org.quartz.*;
import org.springframework.beans.factory.InitializingBean;
+import java.io.IOException;
+import java.net.ConnectException;
+import java.util.*;
+
/**
* Configuration Object
*
@@ -71,6 +56,7 @@
public static final String LTI_ADVANTAGE_MODULE_CLASS = "org.lamsfoundation.lams.lti.advantage.util.LtiAdvantageUtil";
public static final String AI_MODULE_CLASS = "org.lamsfoundation.lams.ai.util.QuestionOpenAiParser";
+ public static final String TEAMWORK_MODULE_CLASS = "org.lamsfoundation.lams.teamwork.TeamworkConstants";
private static Map items = null;