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 7b32fbf05bd0717b40dac31a2608ec159d5e6421..4fd005abfd319bcebc40c6c50cfd0f31463d9d83 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 @@ -360,7 +360,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); @@ -369,7 +370,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(); @@ -547,6 +549,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; } } @@ -556,6 +561,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/upgrade/_spring/databaseUpgradeContext.xml b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml index ad52d24292635fa227d77be22b4bbdf4ed0ec8e7..edd4476ac5521cd046fc0c30f275f76c7ab6d739 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 337d43a491520dbb4a8db00162bce73b27fec42e..1079566432d571080112c0470ecca8522f102df0 100644 --- a/src/main/resources/database/oracle/setupDatabase.sql +++ b/src/main/resources/database/oracle/setupDatabase.sql @@ -1382,12 +1382,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 8d32312bf29687312912335a9e6b027682523ecc..83f9c985cfc37312e1a5cce137060c826dfd621a 100644 --- a/src/main/resources/database/postgresql/setupDatabase.sql +++ b/src/main/resources/database/postgresql/setupDatabase.sql @@ -1342,12 +1342,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,