Skip to content
Snippets Groups Projects
Commit e17a0f63 authored by srosse's avatar srosse
Browse files

Merge OpenOLAT 10.3 to OpenOLAT default branch with 86e999f4750daad9d47a3134515998f941765417

parents 639c363c 8e4fe899
No related branches found
No related tags found
No related merge requests found
......@@ -28,7 +28,7 @@ import java.util.List;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
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.AbstractCSSIconFlexiCellRenderer;
......@@ -50,9 +50,11 @@ import org.olat.core.gui.translator.Translator;
import org.olat.core.id.Identity;
import org.olat.user.UserManager;
import org.olat.user.propertyhandlers.UserPropertyHandler;
import org.springframework.beans.factory.annotation.Autowired;
class ImportStep01 extends BasicStep {
private static final String usageIdentifyer = UserImportController.class.getCanonicalName();
private static final String[] theKeys = new String[]{ "", "update", "ignore" };
private boolean newUsers;
private boolean canCreateOLATPassword;
......@@ -77,17 +79,19 @@ class ImportStep01 extends BasicStep {
}
private final class ImportStepForm01 extends StepFormBasicController {
private FormLayoutContainer textContainer;
private MultipleSelectionElement updateEl;
private MultipleSelectionElement updatePasswordEl;
private SingleSelection updateEl, updatePasswordEl;
private List<UserPropertyHandler> userPropertyHandlers;
@Autowired
private UserManager userManager;
public ImportStepForm01(UserRequest ureq, WindowControl control, Form rootForm, StepsRunContext runContext) {
super(ureq, control, rootForm, runContext, LAYOUT_VERTICAL, null);
// use custom translator with fallback to user properties translator
UserManager um = UserManager.getInstance();
setTranslator(um.getPropertyHandlerTranslator(getTranslator()));
setTranslator(userManager.getPropertyHandlerTranslator(getTranslator()));
flc.setTranslator(getTranslator());
initForm(ureq);
}
......@@ -100,19 +104,34 @@ class ImportStep01 extends BasicStep {
@Override
protected void formOK(UserRequest ureq) {
Boolean updateUsers = Boolean.FALSE;
if(updateEl != null && updateEl.isAtLeastSelected(1)) {
if(updateEl != null && updateEl.isOneSelected() && updateEl.isSelected(1)) {
updateUsers = Boolean.TRUE;
}
addToRunContext("updateUsers", updateUsers);
Boolean updatePasswords = Boolean.FALSE;
if(updatePasswordEl != null && updatePasswordEl.isAtLeastSelected(1)) {
if(updatePasswordEl != null && updatePasswordEl.isOneSelected() && updatePasswordEl.isSelected(1)) {
updatePasswords = Boolean.TRUE;
}
addToRunContext("updatePasswords", updatePasswords);
fireEvent(ureq, StepsEvent.ACTIVATE_NEXT);
}
@Override
protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true;
if(updateEl != null && (!updateEl.isOneSelected() || updateEl.isSelected(0))) {
updateEl.setErrorKey("form.mandatory.hover", null);
allOk &= false;
}
if(updatePasswordEl != null && (!updatePasswordEl.isOneSelected() || updatePasswordEl.isSelected(0))) {
updatePasswordEl.setErrorKey("form.mandatory.hover", null);
allOk &= false;
}
return allOk & super.validateFormLogic(ureq);
}
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
FormLayoutContainer formLayoutVertical = FormLayoutContainer.createVerticalFormLayout("vertical", getTranslator());
......@@ -135,15 +154,13 @@ class ImportStep01 extends BasicStep {
textContainer.contextPut("overview", overview);
textContainer.contextPut("updateusers", updateIdents.isEmpty());
if(!updateIdents.isEmpty()) {
String[] updateValues = new String[]{ translate("update.user") };
String[] theValues = new String[]{ translate("update.select"), translate("update.yes"), translate("update.no") };
updateEl = uifactory
.addCheckboxesHorizontal("update.user", textContainer, new String[]{"on"}, updateValues);
updateEl.select("on", true);
.addDropdownSingleselect("update.user", textContainer, theKeys, theValues, null);
if(canCreateOLATPassword) {
String[] theValues = new String[]{ translate("update.password") };
updatePasswordEl = uifactory
.addCheckboxesHorizontal("update.password", textContainer, new String[]{"on"}, theValues);
.addDropdownSingleselect("update.password", textContainer, theKeys, theValues, null);
}
}
......@@ -175,45 +192,36 @@ class ImportStep01 extends BasicStep {
uifactory.addTableElement(getWindowControl(), "newUsers", tableDataModel, getTranslator(), formLayoutVertical);
}
}
}
private static class UserNewOldCustomFlexiCellRenderer extends AbstractCSSIconFlexiCellRenderer {
/**
*
* Description:<br>
* Special cell renderer that uses a css class icon to display the new user type
*
* <P>
* Initial Date: 21.03.2008 <br>
* @author gnaegi
*/
class UserNewOldCustomFlexiCellRenderer extends AbstractCSSIconFlexiCellRenderer {
@Override
protected String getCellValue(Object cellValue) {
return "";
}
@Override
protected String getCellValue(Object cellValue) {
return "";
}
@Override
protected String getCssClass(Object cellValue) {
if (cellValue instanceof Boolean) {
if (((Boolean) cellValue).booleanValue()) {
return "o_icon_new";
} else {
return "o_icon_warn";
@Override
protected String getCssClass(Object cellValue) {
if (cellValue instanceof Boolean) {
if (((Boolean) cellValue).booleanValue()) {
return "o_icon_new";
} else {
return "o_icon_warn";
}
}
return "o_icon_error";
}
return "o_icon_error";
}
@Override
protected String getHoverText(Object cellValue, Translator translator) {
if (cellValue instanceof Boolean) {
if (((Boolean) cellValue).booleanValue()) {
return translator.translate("import.user.new.alt");
} else {
return translator.translate("import.user.existing.alt");
@Override
protected String getHoverText(Object cellValue, Translator translator) {
if (cellValue instanceof Boolean) {
if (((Boolean) cellValue).booleanValue()) {
return translator.translate("import.user.new.alt");
} else {
return translator.translate("import.user.existing.alt");
}
}
return translator.translate("error");
}
return translator.translate("error");
}
}
\ No newline at end of file
<h4>$r.translate("step1.description")</h4>
#if($newusers=="true")
$overview
<p class="o_warning">$overview</p>
#else
$r.translate("step1.nonewusers")
#end
#if($r.visible("update.password"))
<br/><br/>$r.translate("step1.passwordEmails")
<p class="o_error">$r.translate("step1.nonewusers")</p>
#end
#if($r.visible("update.user"))
<br/><br/>$r.render("update.user")
<div class="form-group #if($f.hasError("update.user")) has-feedback has-error #end clearfix">
$r.render("update.user_LABEL", "update.user", "col-sm-3")
<div class="col-sm-9">
$r.render("update.user", "form")
#if($f.hasError("update.user"))
<span class="o_icon o_icon_error form-control-feedback"></span>
#end
</div>
#if($f.hasError("update.user"))
<div class="col-sm-offset-3 col-sm-9">$r.render("update.user_ERROR")</div>
#end
</div>
#end
#if($r.visible("update.password"))
#if(!$r.visible("update.user"))
<br/>
#end
<br/>$r.render("update.password")
<p class="o_desc">$r.translate("step1.passwordEmails")</p>
<div class="form-group #if($f.hasError("update.password")) has-feedback has-error #end clearfix">
$r.render("update.password_LABEL", "update.password", "col-sm-3")
<div class="col-sm-9">
$r.render("update.password", "form")
#if($f.hasError("update.password"))
<span class="o_icon o_icon_error form-control-feedback"></span>
#end
</div>
#if($f.hasError("update.password"))
<div class="col-sm-offset-3 col-sm-9">$r.render("update.password_ERROR")</div>
#end
</div>
#end
\ No newline at end of file
......@@ -50,5 +50,8 @@ table.user.lang=Sprache
table.user.login=Benutzername
table.user.pwd=Passwort
title=Import von Benutzern
update.password=Passw\u00F6rter \u00E4ndern f\u00FCr existierende Benutzer
update.user=Existierende Benutzer \u00E4ndern
update.password=Passw\u00F6rter bereits bestehender Benutzer aktualisieren
update.user=Daten bereits bestehender Benutzer aktualisieren
update.select=Bitte w\u00E4hlen Sie
update.yes=Ja
update.no=Nein
......@@ -50,5 +50,8 @@ table.user.lang=Language
table.user.login=User name
table.user.pwd=Password
title=User import
update.password=Update passwords of current users
update.user=Update current users
update.password=Update passwords of existing users
update.user=Update user profile data of existing users
update.select=Please select
update.yes=Yes
update.no=No
......@@ -50,5 +50,8 @@ table.user.lang=Langue
table.user.login=Nom d'utilisateur
table.user.pwd=Mot de passe
title=Importation des utilisateurs
update.password=Changer les mots-de-passe de utilisateurs existants
update.user=Mettre \u00E0 jour les utilisateurs existants
update.password=Mettre \u00E0 jour les mots-de-passe des utilisateurs existants
update.user=Mettre \u00E0 jour le profil des utilisateurs existants
update.select=S'il vous pla\u00EEt, choisissez une option
update.yes=Oui
update.no=Non
......@@ -32,7 +32,6 @@ import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.Util;
import org.olat.core.util.mail.MailModule;
import org.olat.core.util.mail.MailUIFactory;
/**
*
......
......@@ -30,7 +30,6 @@ import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.Util;
import org.olat.core.util.mail.MailManager;
import org.olat.core.util.mail.MailModule;
import org.olat.core.util.mail.MailUIFactory;
/**
*
......
......@@ -217,9 +217,11 @@ public class BGTableItem {
}
public void addRelation(BGRepositoryEntryRelation resource) {
if(resource == null) return;
if(relations == null) {
relations = new ArrayList<RepositoryEntryShort>(3);
} else if(relations.size() < 3) {
}
if(relations.size() < 3) {
relations.add(new REShort(resource));
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment