diff --git a/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java b/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java index df59674fa3429c17c0b9e0f14febaccec6800137..754ddc393b5bbd62bcea1818b8f7275f28939c33 100644 --- a/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java +++ b/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java @@ -337,7 +337,8 @@ public class AssessmentModeEditController extends FormBasicController { ipsEl.addActionListener(FormEvent.ONCHANGE); ipsEl.setEnabled(status != Status.end); String ipList = assessmentMode.getIpList(); - ipListEl = uifactory.addTextAreaElement("mode.ips.list", "mode.ips.list", 4096, 4, 60, false, false, ipList, formLayout); + ipListEl = uifactory.addTextAreaElement("mode.ips.list", "mode.ips.list", 16000, 4, 60, false, false, ipList, formLayout); + ipListEl.setMaxLength(16000); ipListEl.setVisible(assessmentMode.isRestrictAccessIps()); ipListEl.setEnabled(status != Status.end); @@ -346,7 +347,8 @@ public class AssessmentModeEditController extends FormBasicController { safeExamBrowserEl.addActionListener(FormEvent.ONCHANGE); safeExamBrowserEl.setEnabled(status != Status.end); String key = assessmentMode.getSafeExamBrowserKey(); - safeExamBrowserKeyEl = uifactory.addTextAreaElement("safeexamkey", "mode.safeexambrowser.key", 4096, 6, 60, false, false, key, formLayout); + safeExamBrowserKeyEl = uifactory.addTextAreaElement("safeexamkey", "mode.safeexambrowser.key", 16000, 6, 60, false, false, key, formLayout); + safeExamBrowserKeyEl.setMaxLength(16000); safeExamBrowserKeyEl.setVisible(assessmentMode.isSafeExamBrowser()); safeExamBrowserKeyEl.setEnabled(status != Status.end); String hint = assessmentMode.getSafeExamBrowserHint(); @@ -557,6 +559,9 @@ public class AssessmentModeEditController extends FormBasicController { if(!StringHelper.containsNonWhitespace(value)) { safeExamBrowserKeyEl.setErrorKey("form.legende.mandatory", null); allOk &= false; + } else if(value.length() > safeExamBrowserKeyEl.getMaxLength()) { + safeExamBrowserKeyEl.setErrorKey("form.error.toolong", new String[] { Integer.toString(safeExamBrowserKeyEl.getMaxLength()) } ); + allOk &= false; } } @@ -566,6 +571,9 @@ public class AssessmentModeEditController extends FormBasicController { if(!StringHelper.containsNonWhitespace(value)) { ipListEl.setErrorKey("form.legende.mandatory", null); allOk &= false; + } else if(value.length() > ipListEl.getMaxLength()) { + ipListEl.setErrorKey("form.error.toolong", new String[] { Integer.toString(ipListEl.getMaxLength()) } ); + allOk &= false; } } return allOk; diff --git a/src/main/java/org/olat/course/nodes/en/ENEditGroupAreaFormController.java b/src/main/java/org/olat/course/nodes/en/ENEditGroupAreaFormController.java index 7d6693993c3b66f199b6f56086c26cc06ebe3c31..40dbee1311b28275b17d36f8d4af7706253d815d 100644 --- a/src/main/java/org/olat/course/nodes/en/ENEditGroupAreaFormController.java +++ b/src/main/java/org/olat/course/nodes/en/ENEditGroupAreaFormController.java @@ -187,12 +187,13 @@ class ENEditGroupAreaFormController extends FormBasicController implements Gener List<EnrollmentRow> enrollmentRows = enrollmentManager.getEnrollments(getIdentity(), groupKeys, null, 256); Map<Long,EnrollmentRow> enrollmentMap = enrollmentRows.stream().collect(Collectors.toMap(EnrollmentRow::getKey, g -> g, (u, v) -> u)); - easyGroupTableRows = new ArrayList<ENEditGroupTableContentRow>(); + easyGroupTableRows = new ArrayList<>(); for (Long groupKey : groupKeys) { BusinessGroup group = groupMap.get(groupKey); - EnrollmentRow enrollment = enrollmentMap.get(groupKey); - - easyGroupTableRows.add(new ENEditGroupTableContentRow(group, enrollment)); + if(group != null) { + EnrollmentRow enrollment = enrollmentMap.get(groupKey); + easyGroupTableRows.add(new ENEditGroupTableContentRow(group, enrollment)); + } } easyGroupTableModel.setObjects(easyGroupTableRows); diff --git a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml index 65508d2b755516132626f446def48889f5d0866e..a6905f231cd6743dcfdcabb7958f3ce8f90ee0f2 100644 --- a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml +++ b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml @@ -224,6 +224,10 @@ <constructor-arg index="0" value="OLAT_14.2.7" /> <property name="alterDbStatements" value="alter_14_2_x_to_14_2_7.sql" /> </bean> + <bean id="database_upgrade_14_2_13" class="org.olat.upgrade.DatabaseUpgrade"> + <constructor-arg index="0" value="OLAT_14.2.13" /> + <property name="alterDbStatements" value="alter_14_2_x_to_14_2_13.sql" /> + </bean> <bean id="database_upgrade_15_pre_0" class="org.olat.upgrade.DatabaseUpgrade"> <constructor-arg index="0" value="OLAT_15.pre.0" /> <property name="alterDbStatements" value="alter_14_2_x_to_15_pre_0.sql" /> diff --git a/src/main/resources/database/mysql/alter_14_2_x_to_14_2_13.sql b/src/main/resources/database/mysql/alter_14_2_x_to_14_2_13.sql new file mode 100644 index 0000000000000000000000000000000000000000..35ad20bf9472a62d158c4777d44bfc6145111bb6 --- /dev/null +++ b/src/main/resources/database/mysql/alter_14_2_x_to_14_2_13.sql @@ -0,0 +1,4 @@ +alter table o_as_mode_course modify a_elements text(32000); +alter table o_as_mode_course modify a_ips text(32000); +alter table o_as_mode_course modify a_safeexambrowserkey text(32000); + diff --git a/src/main/resources/database/oracle/alter_14_2_x_to_14_2_13.sql b/src/main/resources/database/oracle/alter_14_2_x_to_14_2_13.sql new file mode 100644 index 0000000000000000000000000000000000000000..c7d4908afd6e9737c97a08f650f9a492a4abe103 --- /dev/null +++ b/src/main/resources/database/oracle/alter_14_2_x_to_14_2_13.sql @@ -0,0 +1,4 @@ +alter table o_as_mode_course modify a_elements varchar(32000); +alter table o_as_mode_course modify a_ips varchar(32000); +alter table o_as_mode_course modify a_safeexambrowserkey varchar(32000); + diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql index 5768914b3d1dcfcbbc51233f91b934db56573564..154421dedba054f61d2221deba9c3b7bbd2bc644 100644 --- a/src/main/resources/database/oracle/setupDatabase.sql +++ b/src/main/resources/database/oracle/setupDatabase.sql @@ -1390,12 +1390,12 @@ create table o_as_mode_course ( a_end_with_followuptime date not null, a_targetaudience varchar2(16 char), a_restrictaccesselements number default 0 not null, - a_elements varchar2(2048 char), + a_elements varchar2(32000 char), a_start_element varchar2(64 char), a_restrictaccessips number default 0 not null, - a_ips varchar2(2048 char), + a_ips varchar2(32000 char), a_safeexambrowser number default 0 not null, - a_safeexambrowserkey varchar2(2048 char), + a_safeexambrowserkey varchar2(32000 char), a_safeexambrowserhint clob, a_applysettingscoach number default 0 not null, fk_entry number(20) not null, diff --git a/src/main/resources/database/postgresql/alter_14_2_x_to_14_2_13.sql b/src/main/resources/database/postgresql/alter_14_2_x_to_14_2_13.sql new file mode 100644 index 0000000000000000000000000000000000000000..ec9c158de681214c035670d1e96afe09c73f1027 --- /dev/null +++ b/src/main/resources/database/postgresql/alter_14_2_x_to_14_2_13.sql @@ -0,0 +1,4 @@ +alter table o_as_mode_course alter column a_elements type varchar(32000); +alter table o_as_mode_course alter column a_ips type varchar(32000); +alter table o_as_mode_course alter column a_safeexambrowserkey type varchar(32000); + diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql index 34c492ca80d283c07c3f54ddb13f6119fe57e682..703116b3f22ffe39eca1889f50b5c4069d1aba5f 100644 --- a/src/main/resources/database/postgresql/setupDatabase.sql +++ b/src/main/resources/database/postgresql/setupDatabase.sql @@ -1350,12 +1350,12 @@ create table o_as_mode_course ( a_end_with_followuptime timestamp not null, a_targetaudience varchar(16), a_restrictaccesselements bool not null default false, - a_elements varchar(2048), + a_elements varchar(32000), a_start_element varchar(64), a_restrictaccessips bool not null default false, - a_ips varchar(2048), + a_ips varchar(32000), a_safeexambrowser bool not null default false, - a_safeexambrowserkey varchar(2048), + a_safeexambrowserkey varchar(32000), a_safeexambrowserhint text, a_applysettingscoach bool not null default false, fk_entry int8 not null,