Index: tool_adapters/moodle/lams_tool_mdllesson/.classpath
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/.classpath (.../.classpath) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/.classpath (.../.classpath) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -3,13 +3,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Fisheye: Tag 64c4c1fda7389d9cb57ac4b3876099f543cf6512 refers to a dead (removed) revision in file `tool_adapters/moodle/lams_tool_mdllesson/conf/hibernate/mappings/org/lamsfoundation/lams/tool/mdlesn/model/MdlLessonConfigItem.hbm.xml'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 64c4c1fda7389d9cb57ac4b3876099f543cf6512 refers to a dead (removed) revision in file `tool_adapters/moodle/lams_tool_mdllesson/conf/language/ApplicationResources.properties'.
Fisheye: No comparison available. Pass `N' to diff?
Index: tool_adapters/moodle/lams_tool_mdllesson/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -r7283d4cbc49fdbd2b210b466324f136b16314143 -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 7283d4cbc49fdbd2b210b466324f136b16314143)
+++ tool_adapters/moodle/lams_tool_mdllesson/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -11,9 +11,7 @@
activity.description =Moodle Lesson Tool
pageTitle.authoring =Moodle Lesson Authoring
pageTitle.admin =Moodle Lesson Configuration
-admin.extToolAdapterServletUrl =External tool adapter servlet URL
-admin.extServerId =External server id mapping
-admin.extServerUrl =External server url
+admin.enableForIntegratedServers =Enable/disable servers for this Tool Adapter
admin.formError =There was an error processing the form, please ensure both fields are filled and click save again.
admin.return =Return to maintain LAMS
monitor.sessions =Sessions
@@ -41,5 +39,5 @@
label.save =Save
label.cancel =Cancel
error.defineLater =Sorry, the activity is not ready yet. Please wait for the teacher to finishing defining the activity.
-learner.percentage.grade = Learner's grades in percentage
+learner.percentage.grade = Learner's grades in percentage
#======= End labels =====
Index: tool_adapters/moodle/lams_tool_mdllesson/conf/language/lams/ApplicationResources_en_AU.properties
===================================================================
diff -u -r7283d4cbc49fdbd2b210b466324f136b16314143 -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 7283d4cbc49fdbd2b210b466324f136b16314143)
+++ tool_adapters/moodle/lams_tool_mdllesson/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -11,9 +11,7 @@
activity.description =Moodle Lesson Tool
pageTitle.authoring =Moodle Lesson Authoring
pageTitle.admin =Moodle Lesson Configuration
-admin.extToolAdapterServletUrl =External tool adapter servlet URL
-admin.extServerId =External server id mapping
-admin.extServerUrl =External server url
+admin.enableForIntegratedServers =Enable/disable servers for this Tool Adapter
admin.formError =There was an error processing the form, please ensure both fields are filled and click save again.
admin.return =Return to maintain LAMS
monitor.sessions =Sessions
Index: tool_adapters/moodle/lams_tool_mdllesson/conf/language/rams/ApplicationResources.properties
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/conf/language/rams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/conf/language/rams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -11,9 +11,7 @@
activity.description =Moodle Lesson Tool
pageTitle.authoring =Moodle Lesson Authoring
pageTitle.admin =Moodle Lesson Configuration
-admin.extToolAdapterServletUrl =External tool adapter servlet URL
-admin.extServerId =External server id mapping
-admin.extServerUrl =External server url
+admin.enableForIntegratedServers =Enable/disable servers for this Tool Adapter
admin.formError =There was an error processing the form, please ensure both fields are filled and click save again.
admin.return =Return to maintain LAMS
monitor.sessions =Sessions
@@ -41,5 +39,5 @@
label.save =Save
label.cancel =Cancel
error.defineLater =Sorry, the activity is not ready yet. Please wait for the teacher to finishing defining the activity.
-
+learner.percentage.grade = Learner's grades in percentage
#======= End labels =====
Index: tool_adapters/moodle/lams_tool_mdllesson/conf/language/rams/ApplicationResources_en_AU.properties
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/conf/language/rams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/conf/language/rams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -11,9 +11,7 @@
activity.description =Moodle Lesson Tool
pageTitle.authoring =Moodle Lesson Authoring
pageTitle.admin =Moodle Lesson Configuration
-admin.extToolAdapterServletUrl =External tool adapter servlet URL
-admin.extServerId =External server id mapping
-admin.extServerUrl =External server url
+admin.enableForIntegratedServers =Enable/disable servers for this Tool Adapter
admin.formError =There was an error processing the form, please ensure both fields are filled and click save again.
admin.return =Return to maintain LAMS
monitor.sessions =Sessions
@@ -41,5 +39,5 @@
label.save =Save
label.cancel =Cancel
error.defineLater =Sorry, the activity is not ready yet. Please wait for the teacher to finishing defining the activity.
-
-#======= End labels =====
+learner.percentage.grade = Learner's grades in percentage
+#======= End labels =====
\ No newline at end of file
Index: tool_adapters/moodle/lams_tool_mdllesson/db/sql/create_lams_tool_mdlLesson.sql
===================================================================
diff -u -r457901bc825b33406a9f304ffed3cd170fb98de6 -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/db/sql/create_lams_tool_mdlLesson.sql (.../create_lams_tool_mdlLesson.sql) (revision 457901bc825b33406a9f304ffed3cd170fb98de6)
+++ tool_adapters/moodle/lams_tool_mdllesson/db/sql/create_lams_tool_mdlLesson.sql (.../create_lams_tool_mdlLesson.sql) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -1,35 +1,15 @@
-- CVS ID: $Id$
SET FOREIGN_KEY_CHECKS=0;
-drop table if exists tl_mdlesn10_configuration;
drop table if exists tl_mdlesn10_mdllesson;
drop table if exists tl_mdlesn10_session;
drop table if exists tl_mdlesn10_user;
-create table tl_mdlesn10_configuration (uid bigint not null auto_increment, config_key varchar(30) unique, config_value varchar(255), primary key (uid))TYPE=InnoDB;
-create table tl_mdlesn10_mdllesson (uid bigint not null auto_increment, create_date datetime, update_date datetime, define_later bit, content_in_use bit, run_offline bit, tool_content_id bigint, ext_tool_content_id bigint, ext_user_name varchar(255), ext_course_id varchar(255), ext_section varchar(255), primary key (uid))TYPE=InnoDB;
+create table tl_mdlesn10_mdllesson (uid bigint not null auto_increment, create_date datetime, update_date datetime, define_later bit, content_in_use bit, run_offline bit, tool_content_id bigint, ext_tool_content_id bigint, ext_user_name varchar(255), ext_lms_id varchar(255), ext_course_id varchar(255), ext_section varchar(255), primary key (uid))TYPE=InnoDB;
create table tl_mdlesn10_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, ext_session_id bigint, session_name varchar(250), mdllesson_uid bigint, primary key (uid))TYPE=InnoDB;
create table tl_mdlesn10_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, mdllesson_session_uid bigint, entry_uid bigint, primary key (uid))TYPE=InnoDB;
-alter table tl_mdlesn10_session add index FKBA4AC37B89669C81 (mdllesson_uid), add constraint FKBA4AC37B89669C81 foreign key (mdllesson_uid) references tl_mdlesn10_mdllesson (uid);
-alter table tl_mdlesn10_user add index FK1B25DD0618E034DA (mdllesson_session_uid), add constraint FK1B25DD0618E034DA foreign key (mdllesson_session_uid) references tl_mdlesn10_session (uid);
+alter table tl_mdlesn10_session add index FKLESSBA4AC37B89669C81 (mdllesson_uid), add constraint FKLESSBA4AC37B89669C81 foreign key (mdllesson_uid) references tl_mdlesn10_mdllesson (uid);
+alter table tl_mdlesn10_user add index FKLESS1B25DD0618E034DA (mdllesson_session_uid), add constraint FKLESS1B25DD0618E034DA foreign key (mdllesson_session_uid) references tl_mdlesn10_session (uid);
-INSERT INTO tl_mdlesn10_configuration (
- config_key,
- config_value
-)
-VALUES(
- "toolAdapterServlet",
- "http://localhost:8000/lams2conf/tooladapter_mdlesn10"
-);
-
-INSERT INTO tl_mdlesn10_configuration (
- config_key,
- config_value
-)
-VALUES(
- "extServerUrl",
- "http://localhost/moodle19/"
-);
-
INSERT INTO tl_mdlesn10_mdllesson (
tool_content_id,
ext_tool_content_id,
Fisheye: Tag 64c4c1fda7389d9cb57ac4b3876099f543cf6512 refers to a dead (removed) revision in file `tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/dao/IMdlLessonConfigItemDAO.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 64c4c1fda7389d9cb57ac4b3876099f543cf6512 refers to a dead (removed) revision in file `tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/dao/hibernate/MdlLessonConfigItemDAO.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/mdlLessonApplicationContext.xml
===================================================================
diff -u -rb6544cfe682554653a9590c0bf74ed52186d71ff -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/mdlLessonApplicationContext.xml (.../mdlLessonApplicationContext.xml) (revision b6544cfe682554653a9590c0bf74ed52186d71ff)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/mdlLessonApplicationContext.xml (.../mdlLessonApplicationContext.xml) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -19,10 +19,9 @@
-
-
+
@@ -56,10 +55,6 @@
-
-
-
-
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/model/MdlLesson.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/model/MdlLesson.java (.../MdlLesson.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/model/MdlLesson.java (.../MdlLesson.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -48,6 +48,7 @@
private static final String CUSTOM_CSV_MAP_PARAM_USER = "user";
private static final String CUSTOM_CSV_MAP_PARAM_COURSE = "course";
private static final String CUSTOM_CSV_MAP_PARAM_SECTION = "section";
+ private static final String CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID = "extlmsid";
// Fields
/**
@@ -65,6 +66,7 @@
private String extUsername;
private String extCourseId;
private String extSection;
+ private String extLmsId;
//*********** NON Persistent fields
private IToolContentHandler toolContentHandler;
@@ -227,10 +229,18 @@
this.extSection = extSection;
}
- public static long getSerialVersionUID() {
- return serialVersionUID;
+ /**
+ * @hibernate.property column="ext_lms_id" length="255"
+ * @return
+ */
+ public String getExtLmsId() {
+ return extLmsId;
}
+ public void setExtLmsId(String extLmsId) {
+ this.extLmsId = extLmsId;
+ }
+
/**
* @hibernate.set lazy="true" inverse="true" cascade="none"
* @hibernate.collection-key column="mdllesson_uid"
@@ -316,5 +326,6 @@
this.extUsername = params.get(CUSTOM_CSV_MAP_PARAM_USER);
this.extCourseId = params.get(CUSTOM_CSV_MAP_PARAM_COURSE);
this.extSection = params.get(CUSTOM_CSV_MAP_PARAM_SECTION);
+ this.extLmsId = params.get(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID);
}
}
Fisheye: Tag 64c4c1fda7389d9cb57ac4b3876099f543cf6512 refers to a dead (removed) revision in file `tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/model/MdlLessonConfigItem.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/service/IMdlLessonService.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/service/IMdlLessonService.java (.../IMdlLessonService.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/service/IMdlLessonService.java (.../IMdlLessonService.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -25,10 +25,11 @@
package org.lamsfoundation.lams.tool.mdlesn.service;
import java.util.HashMap;
+import java.util.List;
import org.lamsfoundation.lams.integration.ExtServerOrgMap;
+import org.lamsfoundation.lams.integration.ExtServerToolAdapterMap;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLesson;
-import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonConfigItem;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonSession;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonUser;
import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonException;
@@ -96,22 +97,7 @@
public void saveOrUpdateMdlLessonSession(MdlLessonSession mdlLessonSession);
/**
- * Get the mdlLesson config item by key
*
- * @param key
- * @return
- */
- public MdlLessonConfigItem getConfigItem(String key);
-
- /**
- * Save a mdl configItem
- *
- * @param item
- */
- public void saveOrUpdateMdlLessonConfigItem(MdlLessonConfigItem item);
-
- /**
- *
* @param userId
* @param toolSessionId
* @return
@@ -126,13 +112,6 @@
public MdlLessonUser getUserByUID(Long uid);
/**
- * Gets the external organisation map for this tool adapter
- *
- * @return
- */
- public ExtServerOrgMap getExtServerOrgMap();
-
- /**
* Creates a hash for talking to the external server
*
* @param serverMap
@@ -186,8 +165,8 @@
/**
* Constructs a parameter hashmap to be used for the default parameters
* required by the external LMS tool adapter servlet. For instance in
- * mdlLesson, this constructs the following:
- * { ["un", username], ["cs", course], ["ts", timestamp], ["hs", hash], }
+ * mdlLesson, this constructs the following: { ["un", username], ["cs",
+ * course], ["ts", timestamp], ["hs", hash], }
*
* @param mdlLesson
* @return
@@ -197,12 +176,42 @@
/**
* Constructs a parameter hashmap based off customCSV to be used for the
* default parameters required by the external LMS tool adapter servlet. For
- * instance in mdlLesson, this constructs the following:
- * { ["un", username], ["cs", course], ["ts", timestamp], ["hs", hash], }
+ * instance in mdlLesson, this constructs the following: { ["un", username],
+ * ["cs", course], ["ts", timestamp], ["hs", hash], }
*
* @param user
* @param course
* @return
*/
public HashMap getRequiredExtServletParams(String customCSV);
+
+ /**
+ * Gets a list of all external servers
+ *
+ * @return
+ */
+ public List getExtServerList();
+
+ /**
+ * Gets a list of servers mapped to this tool adapter
+ *
+ * @return
+ */
+ public List getMappedServers();
+
+ /**
+ * Save all the mapped servers
+ *
+ * @param mappableServers
+ */
+ public void saveServerMappings(String[] mappableServers);
+
+ /**
+ * Gets an external server url given the extLmsId
+ *
+ * @param extLmsId
+ * @return
+ */
+ public String getExtServerUrl(String extLmsId);
+
}
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/service/MdlLessonService.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/service/MdlLessonService.java (.../MdlLessonService.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/service/MdlLessonService.java (.../MdlLessonService.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -27,26 +27,20 @@
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
-import java.io.DataOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Hashtable;
import java.util.List;
+import java.util.Set;
import java.util.SortedMap;
-import java.util.TreeMap;
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.contentrepository.AccessDeniedException;
@@ -59,42 +53,39 @@
import org.lamsfoundation.lams.contentrepository.service.RepositoryProxy;
import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials;
import org.lamsfoundation.lams.integration.ExtServerOrgMap;
+import org.lamsfoundation.lams.integration.ExtServerToolAdapterMap;
import org.lamsfoundation.lams.integration.UserInfoFetchException;
import org.lamsfoundation.lams.integration.service.IIntegrationService;
import org.lamsfoundation.lams.learning.service.ILearnerService;
import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException;
import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService;
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
import org.lamsfoundation.lams.notebook.service.ICoreNotebookService;
-import org.lamsfoundation.lams.tool.IToolVO;
+import org.lamsfoundation.lams.tool.Tool;
import org.lamsfoundation.lams.tool.ToolAdapterContentManager;
import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolOutput;
import org.lamsfoundation.lams.tool.ToolOutputDefinition;
import org.lamsfoundation.lams.tool.ToolSessionExportOutputData;
import org.lamsfoundation.lams.tool.ToolSessionManager;
-import org.lamsfoundation.lams.tool.mdlesn.dao.IMdlLessonConfigItemDAO;
+import org.lamsfoundation.lams.tool.exception.DataMissingException;
+import org.lamsfoundation.lams.tool.exception.SessionDataExistsException;
+import org.lamsfoundation.lams.tool.exception.ToolException;
import org.lamsfoundation.lams.tool.mdlesn.dao.IMdlLessonDAO;
import org.lamsfoundation.lams.tool.mdlesn.dao.IMdlLessonSessionDAO;
import org.lamsfoundation.lams.tool.mdlesn.dao.IMdlLessonUserDAO;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLesson;
-import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonConfigItem;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonSession;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonUser;
import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonConstants;
import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonException;
import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonToolContentHandler;
import org.lamsfoundation.lams.tool.mdlesn.util.WebUtility;
-import org.lamsfoundation.lams.tool.exception.DataMissingException;
-import org.lamsfoundation.lams.tool.exception.SessionDataExistsException;
-import org.lamsfoundation.lams.tool.exception.ToolException;
import org.lamsfoundation.lams.tool.service.ILamsToolService;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.util.FileUtil;
import org.lamsfoundation.lams.util.HashUtil;
import org.lamsfoundation.lams.util.audit.IAuditService;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* An implementation of the IMdlLessonService interface.
@@ -111,6 +102,7 @@
public static final String CUSTOM_CSV_MAP_PARAM_USER = "user";
public static final String CUSTOM_CSV_MAP_PARAM_COURSE = "course";
public static final String CUSTOM_CSV_MAP_PARAM_SECTION = "section";
+ public static final String CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID = "extlmsid";
public static final String EXT_SERVER_PARAM_USER = "un";
public static final String EXT_SERVER_PARAM_COURSE = "cs";
@@ -122,7 +114,7 @@
public static final String EXT_SERVER_PARAM_UPLOAD_FILE = "upload_file";
public static final String EXT_SERVER_PARAM_OUTPUT_NAME = "oname";
- private static final int EXPECTED_CSV_SIZE = 3;
+ private static final int EXPECTED_CSV_SIZE = 4;
private static final String EXPECTED_CSV_FORM = "user,course";
private IMdlLessonDAO mdlLessonDAO = null;
@@ -131,8 +123,6 @@
private IMdlLessonUserDAO mdlLessonUserDAO = null;
- private IMdlLessonConfigItemDAO mdlLessonConfigItemDAO = null;
-
private ILearnerService learnerService;
private ILamsToolService toolService;
@@ -192,8 +182,7 @@
*/
public Long copyExternalToolContent(HashMap params) throws ToolException, Exception {
- String cloneServletUrl = mdlLessonConfigItemDAO.getConfigItemByKey(MdlLessonConfigItem.KEY_EXTERNAL_TOOL_SERVLET)
- .getConfigValue();
+ String cloneServletUrl = getExtToolAdapterServletUrl(params.get(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID));
// add the method to the params
params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_CLONE);
@@ -216,11 +205,12 @@
params.put(EXT_SERVER_PARAM_COURSE, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_COURSE));
params.put(EXT_SERVER_PARAM_USER, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_USER));
params.put(EXT_SERVER_PARAM_SECTION, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_SECTION));
+ params.put(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID));
String timestamp = Long.toString(new Date().getTime());
params.put(EXT_SERVER_PARAM_TIMESTAMP, timestamp);
- ExtServerOrgMap serverMap = this.getExtServerOrgMap();
+ ExtServerOrgMap serverMap = getExtServerOrgMap(paramsCSV.get(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID));
String hash = hash(serverMap, paramsCSV.get(CUSTOM_CSV_MAP_PARAM_USER), timestamp);
params.put(EXT_SERVER_PARAM_HASH, hash);
@@ -232,11 +222,12 @@
params.put(EXT_SERVER_PARAM_USER, mdllesson.getExtUsername());
params.put(EXT_SERVER_PARAM_COURSE, mdllesson.getExtCourseId());
params.put(EXT_SERVER_PARAM_SECTION, mdllesson.getExtSection());
+ params.put(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID, mdllesson.getExtLmsId());
String timestamp = Long.toString(new Date().getTime());
params.put(EXT_SERVER_PARAM_TIMESTAMP, timestamp);
- ExtServerOrgMap serverMap = this.getExtServerOrgMap();
+ ExtServerOrgMap serverMap = getExtServerOrgMap(mdllesson.getExtLmsId());
String hash = hash(serverMap, mdllesson.getExtUsername(), timestamp);
params.put(EXT_SERVER_PARAM_HASH, hash);
@@ -253,6 +244,7 @@
map.put(CUSTOM_CSV_MAP_PARAM_USER, split[0]);
map.put(CUSTOM_CSV_MAP_PARAM_COURSE, split[1]);
map.put(CUSTOM_CSV_MAP_PARAM_SECTION, split[2]);
+ map.put(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID, split[3]);
return map;
} else {
return null;
@@ -262,13 +254,13 @@
public int getExternalToolOutputInt(String outputName, MdlLesson mdlLesson, Long userId, String extToolContentId,
Long toolSessionId) {
MdlLessonUser user = this.getUserByUserIdAndSessionId(userId, toolSessionId);
- ExtServerOrgMap extServerMap = getExtServerOrgMap();
+ ExtServerOrgMap extServerMap = getExtServerOrgMap(mdlLesson.getExtLmsId());
String extUserName = user.getLoginName().substring(extServerMap.getPrefix().length() + 1);
try {
- String outputServletUrl = mdlLessonConfigItemDAO.getConfigItemByKey(
- MdlLessonConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue();
+ String outputServletUrl = getExtToolAdapterServletUrl(mdlLesson.getExtLmsId());
+ ;
// setting the mdlLesson username so the params are set up correctly
mdlLesson.setExtUsername(extUserName);
@@ -316,8 +308,8 @@
return null;
}
- return mdlLessonOutputFactory.getToolOutput(name, this, toolSessionId, learnerId, session.getMdlLesson(), session
- .getExtSessionId());
+ return mdlLessonOutputFactory.getToolOutput(name, this, toolSessionId, learnerId, session.getMdlLesson(),
+ session.getExtSessionId());
}
/**
@@ -339,6 +331,27 @@
return mdlLessonOutputFactory.getToolOutputDefinitions(mdlesn);
}
+ public String getExtServerUrl(String extLmsId) {
+ ExtServerOrgMap serverMap = integrationService.getExtServerOrgMap(extLmsId);
+ String ret = null;
+ if (serverMap != null) {
+ ret = serverMap.getServerUrl();
+ }
+ return ret;
+ }
+
+ public String getExtToolAdapterServletUrl(String extLmsId) {
+ String ret = getExtServerUrl(extLmsId);
+ if (ret != null) {
+ ret += MdlLessonConstants.RELATIVE_SERVLET_URL;
+ }
+ return ret;
+ }
+
+ public ExtServerOrgMap getExtServerOrgMap(String extLmsId) {
+ return integrationService.getExtServerOrgMap(extLmsId);
+ }
+
public String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp) {
String serverId = serverMap.getServerid();
String serverKey = serverMap.getServerkey();
@@ -390,25 +403,6 @@
fromContent = getDefaultContent();
}
MdlLesson toContent = MdlLesson.newInstance(fromContent, toContentId, mdlLessonToolContentHandler);
-
- // calling the external tool to copy it's content.
- /*
- try
- {
-
- toContent.setExtToolContentId(copyExternalToolContent(
- fromContent.getExtToolContentId(),
- fromContent.getExtUsername(),
- fromContent.getExtCourseId(),
- fromContent.getExtCourseUrl()
- ));
-
- }
- catch(Exception e)
- {
- throw new ToolException("Failed to call external server to copy tool content" + e);
- }*/
-
mdlLessonDAO.saveOrUpdate(toContent);
}
@@ -451,7 +445,7 @@
if ((fromContent == null) || fromContent.getExtToolContentId() == null) {
// create the fromContent using the default tool content
- fromContent = getDefaultContent();
+ fromContent = getDefaultContent(params.get(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID));
try {
// notify the external server to create the default content
params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, "0");
@@ -539,36 +533,39 @@
String toolPath = FileUtil.getFullPath(rootPath, toolContentId.toString());
FileUtil.createDirectory(toolPath);
- String exportServletUrl = mdlLessonConfigItemDAO.getConfigItemByKey(
- MdlLessonConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue();
+ String exportServletUrl = getExtToolAdapterServletUrl(mdlLesson.getExtLmsId());
- // setting these to arbitrary values since they are only used to construct the hash
+ if (exportServletUrl != null) {
+ // setting these to arbitrary values since they are only used to construct the hash
+ mdlLesson.setExtCourseId("extCourse");
+ mdlLesson.setExtSection("0");
+ mdlLesson.setExtUsername("authUser");
+ HashMap params = this.getRequiredExtServletParams(mdlLesson);
+ params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_EXPORT);
+ params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, mdlLesson.getExtToolContentId().toString());
- mdlLesson.setExtCourseId("extCourse");
- mdlLesson.setExtSection("0");
- mdlLesson.setExtUsername("authUser");
- HashMap params = this.getRequiredExtServletParams(mdlLesson);
- params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_EXPORT);
- params.put(EXT_SERVER_PARAM_EXT_TOOL_CONTENT_ID, mdlLesson.getExtToolContentId().toString());
+ // Get the reponse stream from the external server (hopefully containing the export file
+ InputStream in = WebUtility.getResponseInputStreamFromExternalServer(exportServletUrl, params);
- // Get the reponse stream from the external server (hopefully containing the export file
- InputStream in = WebUtility.getResponseInputStreamFromExternalServer(exportServletUrl, params);
+ // Get the output stream to write the file for extport
+ OutputStream out = new BufferedOutputStream(new FileOutputStream(toolPath + "/ext_tool.txt"));
- // Get the output stream to write the file for extport
- OutputStream out = new BufferedOutputStream(new FileOutputStream(toolPath + "/ext_tool.txt"));
+ byte[] buffer = new byte[1024];
+ int numRead;
+ long numWritten = 0;
+ while ((numRead = in.read(buffer)) != -1) {
+ out.write(buffer, 0, numRead);
+ numWritten += numRead;
+ }
+ logger.debug("Path to mdlLesson export content: " + toolPath + "/ext_tool.txt");
- byte[] buffer = new byte[1024];
- int numRead;
- long numWritten = 0;
- while ((numRead = in.read(buffer)) != -1) {
- out.write(buffer, 0, numRead);
- numWritten += numRead;
+ out.flush();
+ out.close();
+ in.close();
+ } else {
+ exportContentService.exportToolContent(toolContentId, mdlLesson, mdlLessonToolContentHandler,
+ rootPath);
}
- logger.debug("Path to mdlLesson export content: " + toolPath + "/ext_tool.txt");
-
- out.flush();
- out.close();
- in.close();
} catch (Exception e) {
logger.error("Problem exporting data from external .LRN servlet", e);
}
@@ -584,13 +581,6 @@
}
- public ExtServerOrgMap getExtServerOrgMap() {
- if (integrationService == null)
- integrationService = getIntegrationService();
- IToolVO tool = toolService.getToolBySignature(MdlLessonConstants.TOOL_SIGNATURE);
- return integrationService.getExtServerOrgMap(tool.getExtLmsId());
- }
-
/**
* Import the XML fragment for the tool's content, along with any files
* needed for the content.
@@ -608,10 +598,6 @@
if (extExportFile.exists()) {
try {
-
- String importServletUrl = mdlLessonConfigItemDAO.getConfigItemByKey(
- MdlLessonConfigItem.KEY_EXTERNAL_TOOL_SERVLET).getConfigValue();
-
if (customCSV == null) {
logger.error("Could not retrieve customCSV required for importing tool adapter tool. CustomCSV: "
+ customCSV);
@@ -620,6 +606,9 @@
+ customCSV);
}
+ HashMap customCSVMap = decodeCustomCSV(customCSV);
+ String importServletUrl = getExtToolAdapterServletUrl(customCSVMap.get(CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID));
+
HashMap params = getRequiredExtServletParams(customCSV);
params.put(EXT_SERVER_PARAM_METHOD, EXT_SERVER_METHOD_IMPORT);
@@ -649,8 +638,8 @@
Object toolPOJO = exportContentService.importToolContent(toolContentPath, mdlLessonToolContentHandler,
fromVersion, toVersion);
if (!(toolPOJO instanceof MdlLesson))
- throw new ImportToolContentException("Import MdlLesson tool content failed. Deserialized object is "
- + toolPOJO);
+ throw new ImportToolContentException(
+ "Import MdlLesson tool content failed. Deserialized object is " + toolPOJO);
MdlLesson mdlLesson = (MdlLesson) toolPOJO;
// reset it to new toolContentId
mdlLesson.setToolContentId(toolContentId);
@@ -675,17 +664,13 @@
}
public MdlLesson getDefaultContent() {
- /*
- Long defaultContentID = getDefaultContentIdBySignature(MdlLessonConstants.TOOL_SIGNATURE);
- MdlLesson defaultContent = getMdlLessonByContentId(defaultContentID);
- if (defaultContent == null) {
- String error = "Could not retrieve default content record for this tool";
- logger.error(error);
- throw new MdlLessonException(error);
- }
+ MdlLesson defaultContent = new MdlLesson();
return defaultContent;
- */
+ }
+
+ public MdlLesson getDefaultContent(String extLmsId) {
MdlLesson defaultContent = new MdlLesson();
+ defaultContent.setExtLmsId(extLmsId);
return defaultContent;
}
@@ -705,6 +690,57 @@
return newContent;
}
+ @SuppressWarnings("unchecked")
+ public List getExtServerList() {
+ if (integrationService.getAllExtServerOrgMaps() != null) {
+ return (List) integrationService.getAllExtServerOrgMaps();
+ } else {
+ return null;
+ }
+
+ }
+
+ public List getMappedServers() {
+ return integrationService.getMappedServers(MdlLessonConstants.TOOL_SIGNATURE);
+ }
+
+ public void saveServerMappings(String[] mappedServers) {
+ Tool tool = toolService.getPersistToolBySignature(MdlLessonConstants.TOOL_SIGNATURE);
+
+ Set mappedAdapterServers = new HashSet();
+
+ List alreadyMapped = getMappedServers();
+
+ if (tool != null) {
+ if (mappedServers != null) {
+
+ for (int i = 0; i < mappedServers.length; i++) {
+
+ ExtServerOrgMap serverMap = integrationService.getExtServerOrgMap(mappedServers[i]);
+
+ if (serverMap != null) {
+
+ ExtServerToolAdapterMap serverToolMap = integrationService.getMappedServer(serverMap
+ .getServerid(), MdlLessonConstants.TOOL_SIGNATURE);
+
+ if (serverToolMap == null) {
+ serverToolMap = new ExtServerToolAdapterMap(tool, serverMap);
+ integrationService.saveExtServerToolAdapterMap(serverToolMap);
+ }
+ mappedAdapterServers.add(serverToolMap);
+ }
+ }
+ }
+ }
+
+ for (ExtServerToolAdapterMap map : alreadyMapped) {
+ if (!mappedAdapterServers.contains(map)) {
+ integrationService.deleteExtServerToolAdapterMap(map);
+ }
+ }
+
+ }
+
public MdlLesson getMdlLessonByContentId(Long toolContentID) {
MdlLesson mdlLesson = (MdlLesson) mdlLessonDAO.getByContentId(toolContentID);
if (mdlLesson == null) {
@@ -713,14 +749,6 @@
return mdlLesson;
}
- public MdlLessonConfigItem getConfigItem(String key) {
- return mdlLessonConfigItemDAO.getConfigItemByKey(key);
- }
-
- public void saveOrUpdateMdlLessonConfigItem(MdlLessonConfigItem item) {
- mdlLessonConfigItemDAO.saveOrUpdate(item);
- }
-
public MdlLessonSession getSessionBySessionId(Long toolSessionId) {
MdlLessonSession mdlLessonSession = mdlLessonSessionDAO.getBySessionId(toolSessionId);
if (mdlLessonSession == null) {
@@ -850,14 +878,6 @@
this.mdlLessonDAO = mdlLessonDAO;
}
- public IMdlLessonConfigItemDAO getMdlLessonConfigItemDAO() {
- return mdlLessonConfigItemDAO;
- }
-
- public void setMdlLessonConfigItemDAO(IMdlLessonConfigItemDAO mdlLessonConfigItemDAO) {
- this.mdlLessonConfigItemDAO = mdlLessonConfigItemDAO;
- }
-
public IToolContentHandler getMdlLessonToolContentHandler() {
return mdlLessonToolContentHandler;
}
@@ -931,28 +951,7 @@
* @return
*/
public IIntegrationService getIntegrationService() {
-
- if (integrationService == null) {
- String contexts[] = { "/org/lamsfoundation/lams/applicationContext.xml",
- "/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml",
- "/org/lamsfoundation/lams/toolApplicationContext.xml",
- "/org/lamsfoundation/lams/integrationContext.xml",
- "/org/lamsfoundation/lams/learning/learningApplicationContext.xml",
- "/org/lamsfoundation/lams/contentrepository/applicationContext.xml",
- "/org/lamsfoundation/lams/tool/mdlesn/mdlLessonApplicationContext.xml",
- "/org/lamsfoundation/lams/commonContext.xml" };
-
- ApplicationContext context = new ClassPathXmlApplicationContext(contexts);
-
- if (context == null)
- throw new MdlLessonException(
- "Unable to access application context. Cannot create integration service object.");
-
- IIntegrationService service = (IIntegrationService) context.getBean("integrationService");
- return service;
- } else {
- return integrationService;
- }
+ return integrationService;
}
public void setIntegrationService(IIntegrationService integrationService) {
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/util/MdlLessonConstants.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/util/MdlLessonConstants.java (.../MdlLessonConstants.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/util/MdlLessonConstants.java (.../MdlLessonConstants.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -47,4 +47,6 @@
public static final String PARAM_PARENT_PAGE = "parentPage";
static final String FILTER_REPLACE_TEXT = "***";
+
+ public static final String RELATIVE_SERVLET_URL = "mod/lamstwo/tooladapter_lesson.php";
}
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/util/WebUtility.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/util/WebUtility.java (.../WebUtility.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/util/WebUtility.java (.../WebUtility.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -37,6 +37,7 @@
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.tool.exception.ToolException;
+import org.lamsfoundation.lams.tool.mdlesn.service.MdlLessonService;
public class WebUtility {
static Logger logger = Logger.getLogger(WebUtility.class.getName());
@@ -147,7 +148,9 @@
urlStr += "?";
for (Entry entry : params.entrySet()) {
- urlStr += "&" + entry.getKey() + "=" + entry.getValue();
+ if (!entry.getKey().equals(MdlLessonService.CUSTOM_CSV_MAP_PARAM_EXT_LMS_ID)) {
+ urlStr += "&" + entry.getKey() + "=" + entry.getValue();
+ }
}
logger.debug("Making request to external servlet: " + urlStr);
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/AdminAction.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/AdminAction.java (.../AdminAction.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/AdminAction.java (.../AdminAction.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -23,17 +23,19 @@
/* $$Id$$ */
package org.lamsfoundation.lams.tool.mdlesn.web.actions;
+import java.util.ArrayList;
+import java.util.List;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
-import org.lamsfoundation.lams.tool.Tool;
-import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonConfigItem;
+import org.lamsfoundation.lams.integration.ExtServerOrgMap;
+import org.lamsfoundation.lams.integration.ExtServerToolAdapterMap;
import org.lamsfoundation.lams.tool.mdlesn.service.IMdlLessonService;
import org.lamsfoundation.lams.tool.mdlesn.service.MdlLessonServiceProxy;
-import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonConstants;
import org.lamsfoundation.lams.tool.mdlesn.web.forms.AdminForm;
import org.lamsfoundation.lams.tool.service.ILamsToolService;
import org.lamsfoundation.lams.web.action.LamsDispatchAction;
@@ -60,58 +62,54 @@
AdminForm adminForm = (AdminForm) form;
- if (toolService == null) {
- toolService = mdlLessonService.getToolService();
- }
- Tool tool = toolService.getPersistToolBySignature(MdlLessonConstants.TOOL_SIGNATURE);
+ // Get a list of possible external servers to enable this tool for
+ List serverList = mdlLessonService.getExtServerList();
+ List mappedServers = mdlLessonService.getMappedServers();
+ populateServerList(adminForm, serverList, mappedServers);
- MdlLessonConfigItem toolAdpServlet = mdlLessonService.getConfigItem(MdlLessonConfigItem.KEY_EXTERNAL_TOOL_SERVLET);
- if (toolAdpServlet != null)
- adminForm.setToolAdapterServlet(toolAdpServlet.getConfigValue());
-
- MdlLessonConfigItem extServerConfig = mdlLessonService.getConfigItem(MdlLessonConfigItem.KEY_EXTERNAL_SERVER_URL);
- if (extServerConfig != null)
- adminForm.setExtServerUrl(extServerConfig.getConfigValue());
-
- if (tool != null && tool.getExtLmsId() != null)
- adminForm.setServerIdMapping(tool.getExtLmsId());
-
request.setAttribute("error", false);
return mapping.findForward("config");
}
+ public void populateServerList(AdminForm adminForm, List serverList,
+ List mappedServers) {
+ ArrayList mappableServers = new ArrayList();
+ ArrayList mappedServersInForm = new ArrayList();
+
+ if (serverList != null) {
+ for (ExtServerOrgMap serverMap : serverList) {
+ mappableServers.add(serverMap.getServerid().toString());
+ if (mappedServers != null) {
+ for (ExtServerToolAdapterMap mappedServer : mappedServers) {
+ if (mappedServer.getExtServer().getServerid().equals(serverMap.getServerid())) {
+ mappedServersInForm.add(serverMap.getServerid().toString());
+ }
+ }
+ }
+ }
+ }
+ adminForm.setMappableServers((String[]) mappableServers.toArray(new String[mappableServers.size()]));
+ adminForm.setMappedServers((String[]) mappedServersInForm.toArray(new String[mappedServersInForm.size()]));
+ }
+
public ActionForward saveContent(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
AdminForm adminForm = (AdminForm) form;
- if (adminForm.getToolAdapterServlet() != null && !adminForm.getToolAdapterServlet().equals("")
- && adminForm.getServerIdMapping() != null && !adminForm.getServerIdMapping().equals("")
- && adminForm.getExtServerUrl() != null && !adminForm.getExtServerUrl().equals("")) {
- // set up mdlLessonService
- if (mdlLessonService == null) {
- mdlLessonService = MdlLessonServiceProxy.getMdlLessonService(this.getServlet().getServletContext());
- }
+ // set up mdlLessonService
+ if (mdlLessonService == null) {
+ mdlLessonService = MdlLessonServiceProxy.getMdlLessonService(this.getServlet().getServletContext());
+ }
- MdlLessonConfigItem servletConfig = mdlLessonService
- .getConfigItem(MdlLessonConfigItem.KEY_EXTERNAL_TOOL_SERVLET);
- servletConfig.setConfigValue(adminForm.getToolAdapterServlet());
- mdlLessonService.saveOrUpdateMdlLessonConfigItem(servletConfig);
+ // Save all the mappings
+ mdlLessonService.saveServerMappings(adminForm.getMappedServers());
- MdlLessonConfigItem extServerConfig = mdlLessonService
- .getConfigItem(MdlLessonConfigItem.KEY_EXTERNAL_SERVER_URL);
- extServerConfig.setConfigValue(adminForm.getExtServerUrl());
- mdlLessonService.saveOrUpdateMdlLessonConfigItem(extServerConfig);
+ // Get a list of possible external servers to enable this tool for
+ List serverList = mdlLessonService.getExtServerList();
+ List mappedServers = mdlLessonService.getMappedServers();
+ populateServerList(adminForm, serverList, mappedServers);
- if (toolService == null) {
- toolService = mdlLessonService.getToolService();
- }
- Tool tool = toolService.getPersistToolBySignature(MdlLessonConstants.TOOL_SIGNATURE);
- tool.setExtLmsId(adminForm.getServerIdMapping());
- toolService.saveOrUpdateTool(tool);
- return mapping.findForward("config");
- } else {
- request.setAttribute("error", true);
- return mapping.findForward("config");
- }
+ return mapping.findForward("config");
+
}
}
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/AuthoringAction.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -38,7 +38,6 @@
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.exception.ToolException;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLesson;
-import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonConfigItem;
import org.lamsfoundation.lams.tool.mdlesn.service.IMdlLessonService;
import org.lamsfoundation.lams.tool.mdlesn.service.MdlLessonServiceProxy;
import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonConstants;
@@ -64,7 +63,7 @@
public IMdlLessonService mdlLessonService;
- //public static final String RELATIVE_MOODLE_AUTHOR_URL = "/course/modedit-lams.php?";
+ //public static final String RELATIVE_MOODLE_AUTHOR_URL = "/course/modedit-lams.php?";
public static final String RELATIVE_MOODLE_AUTHOR_URL = "course/lamsframes.php?";
public static final String MOODLE_EDIT_URL = "course/modedit-lams.php";
@@ -108,19 +107,21 @@
String userFromCSV = null;
String courseFromCSV = null;
String sectionFromCSV = null;
+ String extLmsIdFromCSV = null;
if (customCSV == null && mdlLesson == null) {
logger.error("CustomCSV required if mdlLesson is null");
throw new ToolException("CustomCSV required if mdlLesson is null");
} else if (customCSV != null) {
String splitCSV[] = customCSV.split(",");
- if (splitCSV.length != 3) {
+ if (splitCSV.length != 4) {
logger.error("mdlLesson tool customCSV not in required (user,course,courseURL) form: " + customCSV);
throw new ToolException("mdlLesson tool cusomCSV not in required (user,course,courseURL) form: "
+ customCSV);
} else {
userFromCSV = splitCSV[0];
courseFromCSV = splitCSV[1];
sectionFromCSV = splitCSV[2];
+ extLmsIdFromCSV = splitCSV[3];
}
}
@@ -129,9 +130,18 @@
mdlLesson.setExtUsername(userFromCSV);
mdlLesson.setExtCourseId(courseFromCSV);
mdlLesson.setExtSection(sectionFromCSV);
+ mdlLesson.setExtLmsId(extLmsIdFromCSV);
mdlLesson.setCreateDate(new Date());
}
+ if (mdlLesson.getExtLmsId() == null) {
+ mdlLesson.setExtUsername(userFromCSV);
+ mdlLesson.setExtCourseId(courseFromCSV);
+ mdlLesson.setExtSection(sectionFromCSV);
+ mdlLesson.setExtLmsId(extLmsIdFromCSV);
+ mdlLesson.setCreateDate(new Date());
+ }
+
if (mode != null && mode.isTeacher()) {
// Set the defineLater flag so that learners cannot use content
// while we
@@ -144,30 +154,20 @@
try {
// If the mdlLesson has a saved course url, use it, otherwise use the one giving in the request in customCSV
- //String courseUrlToBeUsed = (mdlLesson.getExtCourseUrl() != null) ? mdlLesson.getExtCourseUrl() : courseUrlFromCSV;
-
- String responseUrl = mdlLessonService.getConfigItem(MdlLessonConfigItem.KEY_EXTERNAL_SERVER_URL)
- .getConfigValue();
- /* responseUrl += RELATIVE_MOODLE_AUTHOR_URL;
+ String responseUrl = mdlLessonService.getExtServerUrl(mdlLesson.getExtLmsId());
+
+ responseUrl += RELATIVE_MOODLE_AUTHOR_URL;
String returnUpdateUrl = URLEncoder.encode(TOOL_APP_URL + "/authoring.do?dispatch=updateContent" + "&"
+ AttributeNames.PARAM_TOOL_CONTENT_ID + "=" + toolContentID.toString(), "UTF8");
- responseUrl += "&lamsUpdateURL=" + returnUpdateUrl;*/
-
-
- responseUrl += RELATIVE_MOODLE_AUTHOR_URL;
- String returnUpdateUrl = URLEncoder.encode(TOOL_APP_URL + "/authoring.do?dispatch=updateContent" + "&"
- + AttributeNames.PARAM_TOOL_CONTENT_ID + "=" + toolContentID.toString(), "UTF8");
-
-
- returnUpdateUrl = URLEncoder.encode(returnUpdateUrl, "UTF8");
-
- responseUrl += "lamsUpdateURL=" + returnUpdateUrl;
-
- String encodedMoodleRelativePath = URLEncoder.encode(MOODLE_EDIT_URL, "UTF8");
-
- responseUrl += "&dest=" + encodedMoodleRelativePath ;
-
+ returnUpdateUrl = URLEncoder.encode(returnUpdateUrl, "UTF8");
+
+ responseUrl += "lamsUpdateURL=" + returnUpdateUrl;
+
+ String encodedMoodleRelativePath = URLEncoder.encode(MOODLE_EDIT_URL, "UTF8");
+
+ responseUrl += "&dest=" + encodedMoodleRelativePath;
+
if (mdlLesson.getExtSection() != null) {
responseUrl += "§ion=" + mdlLesson.getExtSection();
} else {
@@ -211,9 +211,9 @@
mdlLessonService.saveOrUpdateMdlLesson(mdlLesson);
String redirectString = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/"
- + MdlLessonConstants.TOOL_SIGNATURE + "/clearsession.do" + "?action=confirm&mode=author" + "&signature="
- + MdlLessonConstants.TOOL_SIGNATURE + "&toolContentID=" + toolContentID.toString() + "&defineLater=no"
- + "&customiseSessionID=" + "&contentFolderID=0";
+ + MdlLessonConstants.TOOL_SIGNATURE + "/clearsession.do" + "?action=confirm&mode=author"
+ + "&signature=" + MdlLessonConstants.TOOL_SIGNATURE + "&toolContentID=" + toolContentID.toString()
+ + "&defineLater=no" + "&customiseSessionID=" + "&contentFolderID=0";
log.debug("Manual redirect for MdlLesson to: " + redirectString);
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/LearningAction.java
===================================================================
diff -u -r9d6bdd2f3a2107002f12b13ee4533ce9b01191df -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/LearningAction.java (.../LearningAction.java) (revision 9d6bdd2f3a2107002f12b13ee4533ce9b01191df)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/LearningAction.java (.../LearningAction.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -38,11 +38,10 @@
import org.lamsfoundation.lams.tool.ToolSessionManager;
import org.lamsfoundation.lams.tool.exception.DataMissingException;
import org.lamsfoundation.lams.tool.exception.ToolException;
-import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonUser;
import org.lamsfoundation.lams.tool.mdlesn.dto.MdlLessonDTO;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLesson;
-import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonConfigItem;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonSession;
+import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonUser;
import org.lamsfoundation.lams.tool.mdlesn.service.IMdlLessonService;
import org.lamsfoundation.lams.tool.mdlesn.service.MdlLessonServiceProxy;
import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonConstants;
@@ -76,7 +75,7 @@
public static final String RELATIVE_LEARNER_URL = "course/lamsframes.php?";
public static final String MOODLE_VIEW_URL = "mod/lesson/view.php";
- public static final String RELATIVE_TEACHER_URL = "mod/lesson/report.php?";
+ public static final String RELATIVE_TEACHER_URL = "mod/lesson/report.php?";
private IMdlLessonService mdlLessonService;
@@ -91,7 +90,7 @@
}
// Retrieve the session and content.
- ToolAccessMode mode = WebUtil.readToolAccessModeParam(request,AttributeNames.PARAM_MODE, false);
+ ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, false);
MdlLessonSession mdlLessonSession = mdlLessonService.getSessionBySessionId(toolSessionID);
if (mdlLessonSession == null) {
throw new MdlLessonException("Cannot retreive session with toolSessionID: " + toolSessionID);
@@ -120,31 +119,25 @@
}
if (mdlLesson.getExtToolContentId() != null) {
- try {
- String responseUrl = mdlLessonService.getConfigItem(MdlLessonConfigItem.KEY_EXTERNAL_SERVER_URL)
- .getConfigValue();
-
- if(mode.equals(ToolAccessMode.TEACHER))
- {
- responseUrl += RELATIVE_TEACHER_URL;
- }
- else if (mode.equals(ToolAccessMode.LEARNER) || mode.equals(ToolAccessMode.AUTHOR))
- {
- responseUrl += RELATIVE_LEARNER_URL;
- }
+ try {
+ String responseUrl = mdlLessonService.getExtServerUrl(mdlLesson.getExtLmsId());
+ if (mode.equals(ToolAccessMode.TEACHER)) {
+ responseUrl += RELATIVE_TEACHER_URL;
+ } else if (mode.equals(ToolAccessMode.LEARNER) || mode.equals(ToolAccessMode.AUTHOR)) {
+ responseUrl += RELATIVE_LEARNER_URL;
+ }
String returnUrl = TOOL_APP_URL + "learning.do?" + AttributeNames.PARAM_TOOL_SESSION_ID + "="
+ toolSessionID.toString() + "&dispatch=finishActivity";
-
+
String encodedMoodleRelativePath = URLEncoder.encode(MOODLE_VIEW_URL, "UTF8");
returnUrl = URLEncoder.encode(returnUrl, "UTF8");
-
- responseUrl += "&id=" + mdlLessonSession.getExtSessionId() + "&returnUrl=" + returnUrl
- + "&dest=" + encodedMoodleRelativePath + "&is_learner=1" + "&isFinished=" + mdlLessonUser.isFinishedActivity();
-
-
+ responseUrl += "&id=" + mdlLessonSession.getExtSessionId() + "&returnUrl=" + returnUrl + "&dest="
+ + encodedMoodleRelativePath + "&is_learner=1" + "&isFinished="
+ + mdlLessonUser.isFinishedActivity();
+
log.debug("Redirecting for mdl lesson learner: " + responseUrl);
response.sendRedirect(responseUrl);
} catch (Exception e) {
@@ -160,8 +153,8 @@
UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
// attempt to retrieve user using userId and toolSessionId
- MdlLessonUser mdlLessonUser = mdlLessonService.getUserByUserIdAndSessionId(new Long(user.getUserID().intValue()),
- toolSessionId);
+ MdlLessonUser mdlLessonUser = mdlLessonService.getUserByUserIdAndSessionId(
+ new Long(user.getUserID().intValue()), toolSessionId);
if (mdlLessonUser == null) {
MdlLessonSession mdlLessonSession = mdlLessonService.getSessionBySessionId(toolSessionId);
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/MonitoringAction.java
===================================================================
diff -u -r61fb4f65da7e857d5e011e37fbabad6620cca7b9 -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 61fb4f65da7e857d5e011e37fbabad6620cca7b9)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/actions/MonitoringAction.java (.../MonitoringAction.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -37,7 +37,6 @@
import org.lamsfoundation.lams.tool.mdlesn.dto.MdlLessonDTO;
import org.lamsfoundation.lams.tool.mdlesn.dto.MdlLessonSessionDTO;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLesson;
-import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonConfigItem;
import org.lamsfoundation.lams.tool.mdlesn.service.IMdlLessonService;
import org.lamsfoundation.lams.tool.mdlesn.service.MdlLessonServiceProxy;
import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonConstants;
@@ -90,15 +89,15 @@
for (MdlLessonSessionDTO sessionDTO : mdlLessonDT0.getSessionDTOs()) {
try {
- String responseUrl = mdlLessonService.getConfigItem(MdlLessonConfigItem.KEY_EXTERNAL_SERVER_URL)
- .getConfigValue();
+ String responseUrl = mdlLessonService.getExtServerUrl(mdlLesson.getExtLmsId());
responseUrl += RELATIVE_MONITOR_URL;
String returnUrl = TOOL_APP_URL + "learning.do?" + AttributeNames.PARAM_TOOL_SESSION_ID + "="
+ sessionDTO.getSessionID().toString() + "&dispatch=finishActivity";
returnUrl = URLEncoder.encode(returnUrl, "UTF8");
- responseUrl += "&update=" + sessionDTO.getExtSessionID()+ "&id=" + sessionDTO.getExtSessionID() + "&returnUrl=" + returnUrl;
+ responseUrl += "&update=" + sessionDTO.getExtSessionID() + "&id=" + sessionDTO.getExtSessionID()
+ + "&returnUrl=" + returnUrl;
sessionDTO.setRunTimeUrl(responseUrl);
} catch (UnsupportedEncodingException e) {
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/forms/AdminForm.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/forms/AdminForm.java (.../AdminForm.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/forms/AdminForm.java (.../AdminForm.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -36,42 +36,29 @@
public class AdminForm extends ActionForm {
private static final long serialVersionUID = 8872637862875198L;
- String toolAdapterServlet;
- String extServerUrl;
- String serverIdMapping;
-
+ String[] mappableServers;
+ String[] mappedServers;
+
@Override
public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
ActionErrors ac = new ActionErrors();
ac.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("this is an error"));
return ac;
}
- public String getToolAdapterServlet() {
- return toolAdapterServlet;
+ public String[] getMappableServers() {
+ return mappableServers;
}
- public void setToolAdapterServlet(String toolAdapterServlet) {
- this.toolAdapterServlet = toolAdapterServlet;
+ public void setMappableServers(String[] mappableServers) {
+ this.mappableServers = mappableServers;
}
- public String getServerIdMapping() {
- return serverIdMapping;
+ public String[] getMappedServers() {
+ return mappedServers;
}
- public void setServerIdMapping(String serverIdMapping) {
- this.serverIdMapping = serverIdMapping;
+ public void setMappedServers(String[] mappedServers) {
+ this.mappedServers = mappedServers;
}
-
- public String getExtServerUrl() {
- return extServerUrl;
- }
-
- public void setExtServerUrl(String extServerUrl) {
- this.extServerUrl = extServerUrl;
- }
-
- public static long getSerialVersionUID() {
- return serialVersionUID;
- }
}
Index: tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/servlets/ExportServlet.java
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/src/java/org/lamsfoundation/lams/tool/mdlesn/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -41,10 +41,9 @@
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.mdlesn.dto.MdlLessonDTO;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLesson;
-import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonConfigItem;
import org.lamsfoundation.lams.tool.mdlesn.model.MdlLessonSession;
-import org.lamsfoundation.lams.tool.mdlesn.service.MdlLessonServiceProxy;
import org.lamsfoundation.lams.tool.mdlesn.service.IMdlLessonService;
+import org.lamsfoundation.lams.tool.mdlesn.service.MdlLessonServiceProxy;
import org.lamsfoundation.lams.tool.mdlesn.util.MdlLessonException;
import org.lamsfoundation.lams.tool.mdlesn.util.WebUtility;
import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet;
@@ -166,8 +165,7 @@
private void exportFileFromExternalServer(HttpServletRequest request, HttpServletResponse response,
Long extToolSessionId, MdlLesson mdlLesson, String fullPath) throws Exception {
- String exportPortFolioServletUrl = mdlLessonService.getConfigItem(MdlLessonConfigItem.KEY_EXTERNAL_TOOL_SERVLET)
- .getConfigValue();
+ String exportPortFolioServletUrl = mdlLessonService.getExtServerUrl(mdlLesson.getExtLmsId());
String extUsername = "user"; // setting user to arbitrary values since they are only used to construct the hash
Index: tool_adapters/moodle/lams_tool_mdllesson/web/pages/admin/config.jsp
===================================================================
diff -u -r1900d45594cf161971a48d0e596b36fbcf06a0eb -r64c4c1fda7389d9cb57ac4b3876099f543cf6512
--- tool_adapters/moodle/lams_tool_mdllesson/web/pages/admin/config.jsp (.../config.jsp) (revision 1900d45594cf161971a48d0e596b36fbcf06a0eb)
+++ tool_adapters/moodle/lams_tool_mdllesson/web/pages/admin/config.jsp (.../config.jsp) (revision 64c4c1fda7389d9cb57ac4b3876099f543cf6512)
@@ -30,20 +30,20 @@
-
-
- |
- |
-
-
- |
- |
-
-
- |
- |
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+