diff --git a/src/main/java/ch/ethz/seb/sebserver/gui/content/SebExamConfigImport.java b/src/main/java/ch/ethz/seb/sebserver/gui/content/SebExamConfigImport.java index 2f4f089f..64fbc75a 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gui/content/SebExamConfigImport.java +++ b/src/main/java/ch/ethz/seb/sebserver/gui/content/SebExamConfigImport.java @@ -9,6 +9,7 @@ package ch.ethz.seb.sebserver.gui.content; import java.io.InputStream; +import java.util.List; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; @@ -23,6 +24,7 @@ import ch.ethz.seb.sebserver.gbl.model.EntityKey; import ch.ethz.seb.sebserver.gbl.model.sebconfig.Configuration; import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationNode; import ch.ethz.seb.sebserver.gbl.util.Result; +import ch.ethz.seb.sebserver.gbl.util.Tuple; import ch.ethz.seb.sebserver.gui.content.action.ActionDefinition; import ch.ethz.seb.sebserver.gui.form.Form; import ch.ethz.seb.sebserver.gui.form.FormBuilder; @@ -194,7 +196,7 @@ public final class SebExamConfigImport { public Supplier> compose(final Composite parent) { final ResourceService resourceService = this.pageService.getResourceService(); - + final List> examConfigTemplateResources = resourceService.getExamConfigTemplateResources(); final FormHandle formHandle = this.pageService.formBuilder( this.pageContext.copyOf(parent), 4) .readonly(false) @@ -216,7 +218,7 @@ public final class SebExamConfigImport { SebExamConfigPropForm.FORM_DESCRIPTION_TEXT_KEY) .asArea()) .addFieldIf( - () -> this.newConfig, + () -> this.newConfig && !examConfigTemplateResources.isEmpty(), () -> FormBuilder.singleSelection( Domain.CONFIGURATION_NODE.ATTR_TEMPLATE_ID, SebExamConfigPropForm.FORM_TEMPLATE_TEXT_KEY, diff --git a/src/main/java/ch/ethz/seb/sebserver/gui/content/SebExamConfigPropForm.java b/src/main/java/ch/ethz/seb/sebserver/gui/content/SebExamConfigPropForm.java index 6e9fb3ba..4ce61761 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gui/content/SebExamConfigPropForm.java +++ b/src/main/java/ch/ethz/seb/sebserver/gui/content/SebExamConfigPropForm.java @@ -10,6 +10,7 @@ package ch.ethz.seb.sebserver.gui.content; import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.function.Function; import org.eclipse.rap.rwt.RWT; @@ -35,6 +36,7 @@ import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationNode.Configuration import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationNode.ConfigurationType; import ch.ethz.seb.sebserver.gbl.model.user.UserInfo; import ch.ethz.seb.sebserver.gbl.profile.GuiProfile; +import ch.ethz.seb.sebserver.gbl.util.Tuple; import ch.ethz.seb.sebserver.gui.content.action.ActionDefinition; import ch.ethz.seb.sebserver.gui.form.FormBuilder; import ch.ethz.seb.sebserver.gui.form.FormHandle; @@ -168,6 +170,7 @@ public class SebExamConfigPropForm implements TemplateComposer { formContext.getParent(), titleKey); + final List> examConfigTemplateResources = resourceService.getExamConfigTemplateResources(); final FormHandle formHandle = this.pageService.formBuilder( formContext.copyOf(content), 4) .readonly(isReadonly) @@ -189,14 +192,16 @@ public class SebExamConfigPropForm implements TemplateComposer { FORM_DESCRIPTION_TEXT_KEY, examConfig.description) .asArea()) - .addField(FormBuilder.singleSelection( - Domain.CONFIGURATION_NODE.ATTR_TEMPLATE_ID, - FORM_TEMPLATE_TEXT_KEY, - (parentEntityKey != null) - ? parentEntityKey.modelId - : String.valueOf(examConfig.templateId), - resourceService::getExamConfigTemplateResources) - .readonly(!isNew)) + .addFieldIf( + () -> !examConfigTemplateResources.isEmpty(), + () -> FormBuilder.singleSelection( + Domain.CONFIGURATION_NODE.ATTR_TEMPLATE_ID, + FORM_TEMPLATE_TEXT_KEY, + (parentEntityKey != null) + ? parentEntityKey.modelId + : String.valueOf(examConfig.templateId), + resourceService::getExamConfigTemplateResources) + .readonly(!isNew)) .addField(FormBuilder.singleSelection( Domain.CONFIGURATION_NODE.ATTR_STATUS, FORM_STATUS_TEXT_KEY,