diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorConfigController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorConfigController.java index ef8a314875e39ffe1a9c09b1e54302cf2e2fe5fd..3131cd464f302ebd6b0e3f5fdcb1d19f556ed5fc 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorConfigController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorConfigController.java @@ -253,6 +253,8 @@ public class GeneratorConfigController extends FormBasicController { currentOrganisations = QualityUIFactory.getSelectedOrganisations(organisationsEl, currentOrganisations); generatorService.updateGeneratorOrganisations(generator, currentOrganisations); } + + fireEvent(ureq, new GeneratorEvent(generator, GeneratorEvent.Action.CHANGED)); } @Override diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorController.java index a93a36fddd2662b324af857892da99a8cf36c3ca..981b8f656a1102c3e48fcb635c57f23e257d6653 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorController.java @@ -126,10 +126,9 @@ public class GeneratorController extends BasicController implements TooledContro GeneratorEvent gEvent = (GeneratorEvent) event; GeneratorEvent.Action action = gEvent.getAction(); generator = gEvent.getGenerator(); - //TODO uh auch für geenratro -// if (Action.CHANGED.equals(action)) { -// stackPanel.changeDisplayname(dataCollection.getTitle(), null, this); - if (GeneratorEvent.Action.ENABLE.equals(action)) { + if (GeneratorEvent.Action.CHANGED.equals(action)) { + stackPanel.changeDisplayname(generator.getTitle(), null, this); + } else if (GeneratorEvent.Action.ENABLE.equals(action)) { doConfirmEnableGenerator(ureq); } else if (GeneratorEvent.Action.DISABLE.equals(action)) { doConfirmDisableGenerator(ureq); diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorDataModel.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorDataModel.java index 9f518a3948b3b381271d397ab69ee15dd94609e4..3e2ff3fd52f3b52da55250b6e5f347180b510dc1 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorDataModel.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorDataModel.java @@ -45,6 +45,16 @@ class GeneratorDataModel extends DefaultFlexiTableDataModel<GeneratorRow> super(columnsModel); this.translator = translator; } + + public GeneratorRow getObjectByKey(Long key) { + List<GeneratorRow> rows = getObjects(); + for (GeneratorRow row: rows) { + if (row != null && row.getGeneratorRef().getKey().equals(key)) { + return row; + } + } + return null; + } @Override public void sort(SortKey orderBy) { diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEditController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEditController.java index 6d0af9cfbeb48d401225fb0c1ec513f235840e21..1e183d7c2eaa1dd1b3d2665f7d1ed070b425e5db 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEditController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEditController.java @@ -24,6 +24,7 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.modules.quality.QualitySecurityCallback; import org.olat.modules.quality.generator.QualityGenerator; @@ -77,6 +78,14 @@ public class GeneratorEditController extends AbstractGeneratorEditController { providerConfigCtrl.setReadOnly(generator.isEnabled()); } + @Override + protected void event(UserRequest ureq, Controller source, Event event) { + if (event instanceof GeneratorEvent) { + fireEvent(ureq, event); + } + super.event(ureq, source, event); + } + boolean validateBeforeActivation(UserRequest ureq) { boolean allOk = true; allOk &= configCtrl.validateBeforeActivation(ureq); diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEnableConfirmationController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEnableConfirmationController.java index bd1f0b97b6fd9e5e1ed5af4d76b2f3d5fe3b9e42..e7fbc9a509d06dc7a4c39e4f4b566944c9ba6bf2 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEnableConfirmationController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEnableConfirmationController.java @@ -68,6 +68,7 @@ public class GeneratorEnableConfirmationController extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { Date fromDate = generator.getLastRun() != null? generator.getLastRun(): new Date(); fromEl = uifactory.addDateChooser("generator.from.date", fromDate, formLayout); + fromEl.setDateChooserTimeEnabled(true); fromEl.setMandatory(true); fromEl.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEvent.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEvent.java index 5b179150e86d7dfe18005b196887890cf1a26eee..d6f70f7ef7049fe91525d462e9b8aa7ee54e8d74 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEvent.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEvent.java @@ -35,7 +35,8 @@ public class GeneratorEvent extends Event { public enum Action { ENABLE, DISABLE, - DELETE + DELETE, + CHANGED } private final QualityGenerator generator; diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorListController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorListController.java index abb65a17411d2dc2b15786522d9a3330978bdcf1..cef1a3f505d92bb315f5d84470ffa703042404b5 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorListController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorListController.java @@ -158,8 +158,30 @@ public class GeneratorListController extends FormBasicController implements Tool @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { - // TODO uh Auto-generated method stub + if(entries == null || entries.isEmpty()) return; + ContextEntry entry = entries.get(0); + String type = entry.getOLATResourceable().getResourceableTypeName(); + if (QualityGenerator.RESOURCEABLE_TYPE_NAME.equals(type)) { + Long key = entry.getOLATResourceable().getResourceableId(); + GeneratorRow row = dataModel.getObjectByKey(key); + if (row == null) { + loadModel(); + row = dataModel.getObjectByKey(key); + if (row != null) { + doEditGenerator(ureq, row.getGeneratorRef()); + int index = dataModel.getObjects().indexOf(row); + if (index >= 1 && tableEl.getPageSize() > 1) { + int page = index / tableEl.getPageSize(); + tableEl.setPage(page); + } + } else { + tableEl.reset(); + } + } else { + doEditGenerator(ureq, row.getGeneratorRef()); + } + } } @Override diff --git a/src/main/java/org/olat/modules/quality/ui/AbstractDataCollectionEditController.java b/src/main/java/org/olat/modules/quality/ui/AbstractDataCollectionEditController.java index 062429752a37a875360657740867dbd237a43702..9ef79f647d7bc72dc7875c9cd138f046f814f52a 100644 --- a/src/main/java/org/olat/modules/quality/ui/AbstractDataCollectionEditController.java +++ b/src/main/java/org/olat/modules/quality/ui/AbstractDataCollectionEditController.java @@ -73,6 +73,15 @@ abstract class AbstractDataCollectionEditController extends FormBasicController this.dataCollection = dataCollection; } + AbstractDataCollectionEditController(UserRequest ureq, WindowControl wControl, + QualitySecurityCallback secCallback, TooledStackedPanel stackPanel, + QualityDataCollection dataCollection, int layout) { + super(ureq, wControl, layout); + this.secCallback = secCallback; + this.stackPanel = stackPanel; + this.dataCollection = dataCollection; + } + protected void setDataCollection(UserRequest ureq, QualityDataCollection dataCollection) { this.dataCollection = dataCollection; updateUI(ureq); diff --git a/src/main/java/org/olat/modules/quality/ui/ParticipationListController.java b/src/main/java/org/olat/modules/quality/ui/ParticipationListController.java index 3c4eb07f28f99fcba2ee34829632bfa403535aa3..14a96760974f8b65f98321aac9dfaceb53bca3dc 100644 --- a/src/main/java/org/olat/modules/quality/ui/ParticipationListController.java +++ b/src/main/java/org/olat/modules/quality/ui/ParticipationListController.java @@ -99,7 +99,7 @@ public class ParticipationListController extends AbstractDataCollectionEditContr public ParticipationListController(UserRequest ureq, WindowControl windowControl, QualitySecurityCallback secCallback, TooledStackedPanel stackPanel, QualityDataCollection dataCollection) { - super(ureq, windowControl, secCallback, stackPanel, dataCollection); + super(ureq, windowControl, secCallback, stackPanel, dataCollection, LAYOUT_BAREBONE); initForm(ureq); }