From 1c437cd3cd4c9840dd2c260748988ec241f92a00 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Tue, 25 Jun 2013 14:57:46 +0200 Subject: [PATCH] OO-632: implement message to warn about users which has not been found in import process --- .../member/MembersOverviewController.java | 3 + .../member/_i18n/LocalStrings_de.properties | 1 + .../member/_i18n/LocalStrings_en.properties | 1 + ...ortMemberOverviewIdentitiesController.java | 75 ++++++++----------- .../member/wizard/_content/warn_notfound.html | 3 + .../wizard/_i18n/LocalStrings_de.properties | 3 +- .../wizard/_i18n/LocalStrings_en.properties | 1 + .../edit/BusinessGroupMembersController.java | 3 + .../ui/edit/_i18n/LocalStrings_de.properties | 2 +- .../ui/edit/_i18n/LocalStrings_en.properties | 1 + .../ui/main/_i18n/LocalStrings_de.properties | 2 +- .../ui/main/_i18n/LocalStrings_en.properties | 1 + .../RepositoryMembersController.java | 3 + .../_i18n/LocalStrings_de.properties | 3 +- .../_i18n/LocalStrings_en.properties | 1 + 15 files changed, 54 insertions(+), 49 deletions(-) create mode 100644 src/main/java/org/olat/course/member/wizard/_content/warn_notfound.html diff --git a/src/main/java/org/olat/course/member/MembersOverviewController.java b/src/main/java/org/olat/course/member/MembersOverviewController.java index 5a73423b33c..d0023a92a01 100644 --- a/src/main/java/org/olat/course/member/MembersOverviewController.java +++ b/src/main/java/org/olat/course/member/MembersOverviewController.java @@ -255,6 +255,9 @@ public class MembersOverviewController extends BasicController implements Activa @Override public Step execute(UserRequest ureq, WindowControl wControl, StepsRunContext runContext) { addMembers(ureq, runContext); + if(runContext.containsKey("notFounds")) { + showWarning("user.notfound", runContext.get("notFounds").toString()); + } return StepsMainRunController.DONE_MODIFIED; } }; diff --git a/src/main/java/org/olat/course/member/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/member/_i18n/LocalStrings_de.properties index e530215d8c0..89c368992d4 100644 --- a/src/main/java/org/olat/course/member/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/member/_i18n/LocalStrings_de.properties @@ -77,5 +77,6 @@ table.header.tutorsCount=Betreuer table.header.waitingList=Warteliste tutors=Betreuer tutors.infos=Betreuer haben Zugang zum Coaching- und Bewertungswerkzeug f\u00FCr Kursteilnehmer.<br/>Gruppenbetreuer haben Zugang zum Coaching- und Bewertungswerkzeug ihrer Gruppenteilnehmer. +user.notfound=$org.olat.group.ui.main\:user.notfound waiting.infos=Personen auf der Gruppenwarteliste haben weder Zugang zum Kurs noch zu der Gruppe. Der Zugang wird erst freigegeben wenn gen\u00FCgend Platz vorhanden ist oder die Person von Hand umgeteilt wurde. waitinglist=Warteliste diff --git a/src/main/java/org/olat/course/member/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/member/_i18n/LocalStrings_en.properties index cf24b7acb39..dc57a953736 100644 --- a/src/main/java/org/olat/course/member/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/member/_i18n/LocalStrings_en.properties @@ -76,5 +76,6 @@ table.header.tutorsCount=Coaches table.header.waitingList=Waiting list tutors=Coaches tutors.infos=Coaches have access to the coaching and assessment tool for course participants.<br/>Group coaches have access to the coaching and assessment tool for their respective group participants. +user.notfound=$org.olat.group.ui.main\:user.notfound waiting.infos=People on the waiting list don't have access to the group or the course. Access to the group is only granted once free slots are available or the group coach reallocates participants manually. waitinglist=Waiting list diff --git a/src/main/java/org/olat/course/member/wizard/ImportMemberOverviewIdentitiesController.java b/src/main/java/org/olat/course/member/wizard/ImportMemberOverviewIdentitiesController.java index dd480600858..2f2476a0a91 100644 --- a/src/main/java/org/olat/course/member/wizard/ImportMemberOverviewIdentitiesController.java +++ b/src/main/java/org/olat/course/member/wizard/ImportMemberOverviewIdentitiesController.java @@ -20,7 +20,6 @@ package org.olat.course.member.wizard; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.olat.admin.user.UserTableDataModel; @@ -33,6 +32,7 @@ import org.olat.core.commons.persistence.PersistenceHelper; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.impl.Form; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; @@ -55,6 +55,7 @@ public class ImportMemberOverviewIdentitiesController extends StepFormBasicContr private static final String usageIdentifyer = UserTableDataModel.class.getCanonicalName(); private List<Identity> oks; + private List<String> notfounds; private boolean isAdministrativeUser; private final UserManager userManager; @@ -70,11 +71,11 @@ public class ImportMemberOverviewIdentitiesController extends StepFormBasicContr oks = null; if(containsRunContextKey("logins")) { String logins = (String)runContext.get("logins"); - oks = loadModel(logins); + loadModel(logins); } else if(containsRunContextKey("keys")) { @SuppressWarnings("unchecked") List<String> keys = (List<String>)runContext.get("keys"); - oks = loadModel(keys); + loadModel(keys); } isAdministrativeUser = securityModule.isUserAllowedAdminProps(ureq.getUserSession().getRoles()); @@ -84,6 +85,21 @@ public class ImportMemberOverviewIdentitiesController extends StepFormBasicContr @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + if(notfounds != null && !notfounds.isEmpty()) { + String page = velocity_root + "/warn_notfound.html"; + FormLayoutContainer warnLayout = FormLayoutContainer.createCustomFormLayout("warnNotFounds", getTranslator(), page); + warnLayout.setRootForm(mainForm); + formLayout.add(warnLayout); + + StringBuffer sb = new StringBuffer(); + for(String notfound:notfounds) { + if(sb.length() > 0) sb.append(", "); + sb.append(notfound); + } + String msg = translate("user.notfound", new String[]{sb.toString()}); + addToRunContext("notFounds", sb.toString()); + warnLayout.contextPut("notFounds", msg); + } //add the table FlexiTableColumnModel tableColumnModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); @@ -108,14 +124,11 @@ public class ImportMemberOverviewIdentitiesController extends StepFormBasicContr uifactory.addTableElement("users", userTableModel, myTrans, formLayout); } - private List<Identity> loadModel(List<String> keys) { - List<Identity> existIdents = Collections.emptyList();//securityManager.getIdentitiesOfSecurityGroup(securityGroup); - - List<Identity> oks = new ArrayList<Identity>(); + private void loadModel(List<String> keys) { + oks = new ArrayList<Identity>(); List<String> isanonymous = new ArrayList<String>(); - List<String> notfounds = new ArrayList<String>(); - List<String> alreadyin = new ArrayList<String>(); - + notfounds = new ArrayList<String>(); + SecurityGroup anonymousSecGroup = securityManager.findSecurityGroupByName(Constants.GROUP_ANONYMOUS); for (String identityKey : keys) { Identity ident = securityManager.loadIdentityByKey(Long.parseLong(identityKey)); @@ -123,31 +136,16 @@ public class ImportMemberOverviewIdentitiesController extends StepFormBasicContr notfounds.add(identityKey); } else if (securityManager.isIdentityInSecurityGroup(ident, anonymousSecGroup)) { isanonymous.add(identityKey); - } else { - // check if already in group - boolean inGroup = PersistenceHelper.containsPersistable(existIdents, ident); - if (inGroup) { - // added to warning: already in group - alreadyin.add(ident.getName()); - } else { - // ok to add -> preview (but filter duplicate entries) - if (!PersistenceHelper.containsPersistable(oks, ident)) { - oks.add(ident); - } - } + } else if (!PersistenceHelper.containsPersistable(oks, ident)) { + oks.add(ident); } } - - return oks; } - private List<Identity> loadModel(String inp) { - List<Identity> existIdents = Collections.emptyList();//securityManager.getIdentitiesOfSecurityGroup(securityGroup); - - List<Identity> oks = new ArrayList<Identity>(); + private void loadModel(String inp) { + oks = new ArrayList<Identity>(); List<String> isanonymous = new ArrayList<String>(); - List<String> notfounds = new ArrayList<String>(); - List<String> alreadyin = new ArrayList<String>(); + notfounds = new ArrayList<String>(); SecurityGroup anonymousSecGroup = securityManager.findSecurityGroupByName(Constants.GROUP_ANONYMOUS); @@ -160,25 +158,12 @@ public class ImportMemberOverviewIdentitiesController extends StepFormBasicContr notfounds.add(username); } else if (securityManager.isIdentityInSecurityGroup(ident, anonymousSecGroup)) { isanonymous.add(username); - } else { - // check if already in group - boolean inGroup = PersistenceHelper.containsPersistable(existIdents, ident); - if (inGroup) { - // added to warning: already in group - alreadyin.add(ident.getName()); - } else { - // ok to add -> preview (but filter duplicate entries) - if (!PersistenceHelper.containsPersistable(oks, ident)) { - oks.add(ident); - } - } + } else if (!PersistenceHelper.containsPersistable(oks, ident)) { + oks.add(ident); } } } - - return oks; } - public boolean validate() { return true; diff --git a/src/main/java/org/olat/course/member/wizard/_content/warn_notfound.html b/src/main/java/org/olat/course/member/wizard/_content/warn_notfound.html new file mode 100644 index 00000000000..584bb838008 --- /dev/null +++ b/src/main/java/org/olat/course/member/wizard/_content/warn_notfound.html @@ -0,0 +1,3 @@ +<div class="b_warning"> + $notFounds +</div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/member/wizard/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/member/wizard/_i18n/LocalStrings_de.properties index e1834de0071..a21d4f57d5c 100644 --- a/src/main/java/org/olat/course/member/wizard/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/member/wizard/_i18n/LocalStrings_de.properties @@ -6,4 +6,5 @@ import.permission.title=Berechtigungen import.mail.title=E-Mail-Benachrichtigung form.names.example=test01<br/>author02<br/> form.addusers=Benutzername -table.user.login=$org.olat.group.ui.main\:table.header.login \ No newline at end of file +table.user.login=$org.olat.group.ui.main\:table.header.login +user.notfound=$org.olat.group.ui.main\:user.notfound \ No newline at end of file diff --git a/src/main/java/org/olat/course/member/wizard/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/member/wizard/_i18n/LocalStrings_en.properties index 4d5a8bd565c..cbca7b57a7d 100644 --- a/src/main/java/org/olat/course/member/wizard/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/member/wizard/_i18n/LocalStrings_en.properties @@ -7,3 +7,4 @@ import.choose.title=Indicate user name import.mail.title=E-Mail notification import.permission.title=Rights table.user.login=$org.olat.group.ui.main\:table.header.login +user.notfound=$org.olat.group.ui.main\:user.notfound diff --git a/src/main/java/org/olat/group/ui/edit/BusinessGroupMembersController.java b/src/main/java/org/olat/group/ui/edit/BusinessGroupMembersController.java index 60b8642c355..63b600599d9 100644 --- a/src/main/java/org/olat/group/ui/edit/BusinessGroupMembersController.java +++ b/src/main/java/org/olat/group/ui/edit/BusinessGroupMembersController.java @@ -180,6 +180,9 @@ public class BusinessGroupMembersController extends BasicController { @Override public Step execute(UserRequest ureq, WindowControl wControl, StepsRunContext runContext) { addMembers(ureq, runContext); + if(runContext.containsKey("notFounds")) { + showWarning("user.notfound", runContext.get("notFounds").toString()); + } return StepsMainRunController.DONE_MODIFIED; } }; diff --git a/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_de.properties index 01af785c5a0..cdfcaf89f08 100644 --- a/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_de.properties @@ -101,7 +101,7 @@ resources.add=Kurs einbinden resources.add.title=Kurs ausw\u00E4hlen resources.noresources=Diese Gruppe wird in keinem Kurs verwendet. Bitte w\u00E4hlen Sie "Kurs hinzuf\u00FCgen" um diese Gruppe in einem Kurs zu verwenden. resources.remove=entfernen - +user.notfound=$org.olat.group.ui.main\:user.notfound dialog.modal.bg.send.mail=$org.olat.group.ui.main\:dialog.modal.bg.send.mail add.member=$org.olat.group.ui.main\:add.member diff --git a/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_en.properties index b76171338b6..a2ac81c9449 100644 --- a/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_en.properties @@ -128,3 +128,4 @@ table.header.role=$org.olat.group.ui.main\:table.header.role table.header.tutors=org.olat.group.ui.main\:table.header.tutors table.header.tutorsCount=$org.olat.group.ui.main\:table.header.tutorsCount table.header.waitingList=$org.olat.group.ui.main\:table.header.waitingList +user.notfound=$org.olat.group.ui.main\:user.notfound diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties index c6ce0385810..5927f5dbf02 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties @@ -39,7 +39,7 @@ menu.opengroups=Ver\u00F6ffentlichte Gruppen menu.opengroups.alt=Arbeitsgruppen in die \u00F6ffentlich sind und an denen ich teilnehmen kann. msg.atleastone=Es muss mindestens ein Betreuer in der Gruppe eingetragen sein. msg.alleastone.editable.group=Sie m\u00FCssen mindestens eine Gruppe wählen, die Sie besitzen. - +user.notfound=Folgende Benutzer wurden nicht gefunden: {0} open.header=Öffentliche Gruppen open.intro=In dieser Liste finden Sie alle ver\u00F6ffentlichten Gruppen denen Sie beitreten k\u00F6nnen. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties index e45b5c333d9..6bf7978efed 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties @@ -163,3 +163,4 @@ tools.add.header=Create tools.delete.header=Delete tools.delete.unusedgroup=Groups users.group=Manage members +user.notfound=The following users has not been found: {0} diff --git a/src/main/java/org/olat/repository/controllers/RepositoryMembersController.java b/src/main/java/org/olat/repository/controllers/RepositoryMembersController.java index 61c9847b7c1..0185d756e86 100644 --- a/src/main/java/org/olat/repository/controllers/RepositoryMembersController.java +++ b/src/main/java/org/olat/repository/controllers/RepositoryMembersController.java @@ -138,6 +138,9 @@ public class RepositoryMembersController extends AbstractMemberListController { @Override public Step execute(UserRequest ureq, WindowControl wControl, StepsRunContext runContext) { addMembers(ureq, runContext); + if(runContext.containsKey("notFounds")) { + showWarning("user.notfound", runContext.get("notFounds").toString()); + } return StepsMainRunController.DONE_MODIFIED; } }; diff --git a/src/main/java/org/olat/repository/controllers/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/repository/controllers/_i18n/LocalStrings_de.properties index 8710eb14772..e94c3c84cdb 100644 --- a/src/main/java/org/olat/repository/controllers/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/repository/controllers/_i18n/LocalStrings_de.properties @@ -28,4 +28,5 @@ table.header.waitingList=$org.olat.group.ui.main\:table.header.waitingList dialog.modal.bg.send.mail=$org.olat.group.ui.main\:dialog.modal.bg.send.mail dialog.modal.bg.leave.text=$org.olat.group.ui.main\:dialog.modal.bg.leave.text nomembers=XXX No members -mail.member=$org.olat.group.ui.main\:mail.member \ No newline at end of file +mail.member=$org.olat.group.ui.main\:mail.member +user.notfound=Folgende Benutzer wurden nicht gefunden: {0} \ No newline at end of file diff --git a/src/main/java/org/olat/repository/controllers/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/repository/controllers/_i18n/LocalStrings_en.properties index 70f714b66ab..db72d9d9034 100644 --- a/src/main/java/org/olat/repository/controllers/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/repository/controllers/_i18n/LocalStrings_en.properties @@ -29,3 +29,4 @@ table.header.role=$org.olat.group.ui.main\:table.header.role table.header.tutors=$org.olat.group.ui.main\:table.header.tutors table.header.tutorsCount=$org.olat.group.ui.main\:table.header.tutorsCount table.header.waitingList=$org.olat.group.ui.main\:table.header.waitingList +user.notfound=The following users has not been found: {0} \ No newline at end of file -- GitLab