SEBSERV-461 fixed
This commit is contained in:
parent
dd9a0381cb
commit
4cc1eca23e
10 changed files with 26 additions and 13 deletions
|
@ -188,7 +188,7 @@ public class ConfigTemplateAttributeForm implements TemplateComposer {
|
||||||
new View(-1L, ViewContext.TEMPLATE_VIEW_NAME, 10, 0, templateId),
|
new View(-1L, ViewContext.TEMPLATE_VIEW_NAME, 10, 0, templateId),
|
||||||
viewName -> null,
|
viewName -> null,
|
||||||
attributeMapping,
|
attributeMapping,
|
||||||
1, false, null);
|
1, false, true, null);
|
||||||
|
|
||||||
final InputFieldBuilder inputFieldBuilder = this.examConfigurationService.getInputFieldBuilder(
|
final InputFieldBuilder inputFieldBuilder = this.examConfigurationService.getInputFieldBuilder(
|
||||||
attribute.getConfigAttribute(),
|
attribute.getConfigAttribute(),
|
||||||
|
|
|
@ -173,6 +173,7 @@ public class SEBSettingsForm implements TemplateComposer {
|
||||||
attributes,
|
attributes,
|
||||||
30,
|
30,
|
||||||
readonly,
|
readonly,
|
||||||
|
false,
|
||||||
publishedMessagePanelViewCallback);
|
publishedMessagePanelViewCallback);
|
||||||
viewContexts.add(viewContext);
|
viewContexts.add(viewContext);
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,7 @@ public interface ExamConfigurationService {
|
||||||
* @param attributeMapping The attribute mapping if the properties page
|
* @param attributeMapping The attribute mapping if the properties page
|
||||||
* @param rows Number of rows supported for the view.
|
* @param rows Number of rows supported for the view.
|
||||||
* @param readonly Indicates if the view shall be composed in read-only mode.
|
* @param readonly Indicates if the view shall be composed in read-only mode.
|
||||||
|
* @param isTemplate indicates if the view context is related to a configuration template or not
|
||||||
* @return ViewContext instance. */
|
* @return ViewContext instance. */
|
||||||
ViewContext createViewContext(
|
ViewContext createViewContext(
|
||||||
PageContext pageContext,
|
PageContext pageContext,
|
||||||
|
@ -88,7 +89,8 @@ public interface ExamConfigurationService {
|
||||||
AttributeMapping attributeMapping,
|
AttributeMapping attributeMapping,
|
||||||
int rows,
|
int rows,
|
||||||
boolean readonly,
|
boolean readonly,
|
||||||
Runnable valueChageCallback);
|
boolean isTemplate,
|
||||||
|
Runnable valueChangeCallback);
|
||||||
|
|
||||||
Composite createViewGrid(
|
Composite createViewGrid(
|
||||||
Composite parent,
|
Composite parent,
|
||||||
|
|
|
@ -44,7 +44,7 @@ public abstract class AbstractTableFieldBuilder implements InputFieldBuilder {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(AbstractTableFieldBuilder.class);
|
private static final Logger log = LoggerFactory.getLogger(AbstractTableFieldBuilder.class);
|
||||||
|
|
||||||
private static final int ROW_HEIGHT = 20;
|
private static final int ROW_HEIGHT = 30;
|
||||||
private static final int NAV_HEIGHT = 40;
|
private static final int NAV_HEIGHT = 40;
|
||||||
private static final int TABLE_WIDTH_SPACE = 50;
|
private static final int TABLE_WIDTH_SPACE = 50;
|
||||||
|
|
||||||
|
@ -65,7 +65,11 @@ public abstract class AbstractTableFieldBuilder implements InputFieldBuilder {
|
||||||
this.inputFieldBuilderSupplier = inputFieldBuilderSupplier;
|
this.inputFieldBuilderSupplier = inputFieldBuilderSupplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Table createTable(final Composite parent, final TableContext tableContext) {
|
protected Table createTable(
|
||||||
|
final Composite parent,
|
||||||
|
final TableContext tableContext,
|
||||||
|
final boolean isTemplate) {
|
||||||
|
|
||||||
final Table table = new Table(parent, SWT.NONE | SWT.V_SCROLL);
|
final Table table = new Table(parent, SWT.NONE | SWT.V_SCROLL);
|
||||||
table.setLayout(new GridLayout());
|
table.setLayout(new GridLayout());
|
||||||
final GridData gridData = new GridData(
|
final GridData gridData = new GridData(
|
||||||
|
@ -74,7 +78,7 @@ public abstract class AbstractTableFieldBuilder implements InputFieldBuilder {
|
||||||
tableContext.orientation.width(),
|
tableContext.orientation.width(),
|
||||||
tableContext.orientation.height());
|
tableContext.orientation.height());
|
||||||
|
|
||||||
gridData.heightHint = tableContext.orientation.height() * ROW_HEIGHT + NAV_HEIGHT;
|
gridData.heightHint = (isTemplate ? 15 : tableContext.orientation.height()) * ROW_HEIGHT + NAV_HEIGHT;
|
||||||
table.setLayoutData(gridData);
|
table.setLayoutData(gridData);
|
||||||
table.setHeaderVisible(true);
|
table.setHeaderVisible(true);
|
||||||
table.addListener(SWT.Resize, event -> adaptColumnWidth(table, tableContext));
|
table.addListener(SWT.Resize, event -> adaptColumnWidth(table, tableContext));
|
||||||
|
|
|
@ -78,7 +78,7 @@ public class CompositeTableFieldBuilder extends AbstractTableFieldBuilder {
|
||||||
|
|
||||||
final I18nSupport i18nSupport = viewContext.getI18nSupport();
|
final I18nSupport i18nSupport = viewContext.getI18nSupport();
|
||||||
final TableContext tableContext = createTableContext(attribute, viewContext);
|
final TableContext tableContext = createTableContext(attribute, viewContext);
|
||||||
final Table table = createTable(parent, tableContext);
|
final Table table = createTable(parent, tableContext, viewContext.isTemplate);
|
||||||
|
|
||||||
final String resources = attribute.getResources();
|
final String resources = attribute.getResources();
|
||||||
final String[] columnsAndRows = StringUtils.split(
|
final String[] columnsAndRows = StringUtils.split(
|
||||||
|
|
|
@ -184,7 +184,8 @@ public class ExamConfigurationServiceImpl implements ExamConfigurationService {
|
||||||
final AttributeMapping attributeMapping,
|
final AttributeMapping attributeMapping,
|
||||||
final int rows,
|
final int rows,
|
||||||
final boolean readonly,
|
final boolean readonly,
|
||||||
final Runnable valueChageCallback) {
|
final boolean isTemplate,
|
||||||
|
final Runnable valueChangeCallback) {
|
||||||
|
|
||||||
return new ViewContext(
|
return new ViewContext(
|
||||||
configuration,
|
configuration,
|
||||||
|
@ -197,9 +198,10 @@ public class ExamConfigurationServiceImpl implements ExamConfigurationService {
|
||||||
this.restService,
|
this.restService,
|
||||||
this.jsonMapper,
|
this.jsonMapper,
|
||||||
this.valueChangeRules,
|
this.valueChangeRules,
|
||||||
valueChageCallback),
|
valueChangeCallback),
|
||||||
this.widgetFactory.getI18nSupport(),
|
this.widgetFactory.getI18nSupport(),
|
||||||
readonly);
|
readonly,
|
||||||
|
isTemplate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ public class TableFieldBuilder extends AbstractTableFieldBuilder {
|
||||||
final ViewContext viewContext) {
|
final ViewContext viewContext) {
|
||||||
|
|
||||||
final TableContext tableContext = createTableContext(attribute, viewContext);
|
final TableContext tableContext = createTableContext(attribute, viewContext);
|
||||||
final Table table = createTable(parent, tableContext);
|
final Table table = createTable(parent, tableContext, viewContext.isTemplate);
|
||||||
|
|
||||||
for (final ConfigurationAttribute columnAttribute : tableContext.getColumnAttributes()) {
|
for (final ConfigurationAttribute columnAttribute : tableContext.getColumnAttributes()) {
|
||||||
final TableColumn column = this.widgetFactory.tableColumnLocalized(
|
final TableColumn column = this.widgetFactory.tableColumnLocalized(
|
||||||
|
|
|
@ -48,6 +48,7 @@ public final class ViewContext {
|
||||||
final ValueChangeListener valueChangeListener;
|
final ValueChangeListener valueChangeListener;
|
||||||
final I18nSupport i18nSupport;
|
final I18nSupport i18nSupport;
|
||||||
final boolean readonly;
|
final boolean readonly;
|
||||||
|
final boolean isTemplate;
|
||||||
|
|
||||||
ViewContext(
|
ViewContext(
|
||||||
final Configuration configuration,
|
final Configuration configuration,
|
||||||
|
@ -57,7 +58,8 @@ public final class ViewContext {
|
||||||
final AttributeMapping attributeContext,
|
final AttributeMapping attributeContext,
|
||||||
final ValueChangeListener valueChangeListener,
|
final ValueChangeListener valueChangeListener,
|
||||||
final I18nSupport i18nSupport,
|
final I18nSupport i18nSupport,
|
||||||
final boolean readonly) {
|
final boolean readonly,
|
||||||
|
final boolean isTemplate) {
|
||||||
|
|
||||||
Objects.requireNonNull(configuration);
|
Objects.requireNonNull(configuration);
|
||||||
Objects.requireNonNull(view);
|
Objects.requireNonNull(view);
|
||||||
|
@ -74,6 +76,7 @@ public final class ViewContext {
|
||||||
this.valueChangeListener = valueChangeListener;
|
this.valueChangeListener = valueChangeListener;
|
||||||
this.i18nSupport = i18nSupport;
|
this.i18nSupport = i18nSupport;
|
||||||
this.readonly = readonly;
|
this.readonly = readonly;
|
||||||
|
this.isTemplate = isTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isReadonly() {
|
public boolean isReadonly() {
|
||||||
|
|
|
@ -132,7 +132,7 @@ public class InlineTableConverter implements AttributeValueConverter {
|
||||||
value.configurationId,
|
value.configurationId,
|
||||||
configurationAttribute.id,
|
configurationAttribute.id,
|
||||||
0,
|
0,
|
||||||
val[1]);
|
val.length > 1 ? val[1] : null);
|
||||||
|
|
||||||
if (xml) {
|
if (xml) {
|
||||||
attributeValueConverter.convertToXML(
|
attributeValueConverter.convertToXML(
|
||||||
|
|
|
@ -813,7 +813,8 @@ sebserver.exam.delete.report.list.empty=No dependencies will be deleted.
|
||||||
sebserver.exam.proctoring.actions.open=Proctoring Settings
|
sebserver.exam.proctoring.actions.open=Proctoring Settings
|
||||||
sebserver.exam.proctoring.form.title=Exam Proctoring Settings
|
sebserver.exam.proctoring.form.title=Exam Proctoring Settings
|
||||||
sebserver.exam.proctoring.form.info.title=Remote Proctoring
|
sebserver.exam.proctoring.form.info.title=Remote Proctoring
|
||||||
sebserver.exam.proctoring.form.sebserver.exam.proctoring.form.enabled=Proctoring enabled
|
sebserver.exam.proctoring.form.info=This allows to integrate a supported external proctoring service.<br/>To integrate Jitsi Meet, JWT based authentication must be enabled.<br/>To integrate Zoom a Zoom higher-plan account is needed and also JWT based authentication.
|
||||||
|
sebserver.exam.proctoring.form.enabled=Proctoring enabled
|
||||||
sebserver.exam.proctoring.form.enabled.tooltip=Indicates whether the exam proctoring feature is enabled for this exam or not.
|
sebserver.exam.proctoring.form.enabled.tooltip=Indicates whether the exam proctoring feature is enabled for this exam or not.
|
||||||
sebserver.exam.proctoring.form.type=Type
|
sebserver.exam.proctoring.form.type=Type
|
||||||
sebserver.exam.proctoring.form.type.tooltip=The type and server type of the external proctoring service.
|
sebserver.exam.proctoring.form.type.tooltip=The type and server type of the external proctoring service.
|
||||||
|
|
Loading…
Reference in a new issue