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

OO-2452: wording, warning save profil...

parent a00b34eb
No related branches found
No related tags found
No related merge requests found
Showing
with 91 additions and 2 deletions
......@@ -71,9 +71,12 @@ public class SMSPhoneController extends FormBasicController implements SupportsA
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
phoneEl = uifactory.addTextElement("sms.phone.number", "sms.phone.number", 32, "", formLayout);
phoneEl.setPlaceholderKey("sms.phone.number.hint", null);
phoneEl.setExampleKey("sms.phone.number.example", null);
phoneEl.setFocus(true);
tokenEl = uifactory.addTextElement("sms.token.number", "sms.token.number", 16, "", formLayout);
tokenEl.setExampleKey("sms.token.number.explain", null);
tokenEl.setFocus(true);
tokenEl.setVisible(false);
FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
......
......@@ -16,6 +16,7 @@ reset.password=Password zur\u00FCcksetzen
service=Dienst
sms.phone.number=Telephon Mobil
sms.phone.number.hint=+41 12 345 67 89
sms.phone.number.example=Sie m\u00FCssen Ihre Telefonnummer in internationalem Format geben (+41 12 345 67 89).
sms.token=Ihr Token ist {0}
sms.token.number=Token
sms.token.number.explain=Bitte geben Sie den 6 stellige Nummer ein dass Sie per SMS bekommen haben.
......
......@@ -16,6 +16,7 @@ reset.password=Reset password
service=Service
sms.phone.number=Mobile telefon
sms.phone.number.hint=+41 12 345 67 89
sms.phone.number.example=You need to enter you phone number in the international format (e.g. +41 12 345 67 89).
sms.token=Your token is {0}
sms.token.number=Code
sms.token.number.explain=Please enter the 6 digit number that you received by SMS.
......
......@@ -285,6 +285,21 @@ public class FormJSHelper {
return sb;
}
/**
* This is an hack because it use a timeout of 500ms to be executed after
* o_afterserver() method
*
* @param sb
* @param form
* @return
*/
public static StringOutput setFlexiFormDirtyOnLoad(StringOutput sb, Form form) {
sb.append("<script type=\"text/javascript\">\n /* <![CDATA[ */ \n")
.append(" setTimeout(function(){ setFlexiFormDirty(\"").append(form.getDispatchFieldId()).append("\",").append(form.isHideDirtyMarkingMessage()).append(");}, 500);")
.append("\n/* ]]> */ \n</script>");
return sb;
}
public static String getSetFlexiFormDirtyFnCallOnly(Form form){
if(form.isDirtyMarking()){
return "setFlexiFormDirty('"+form.getDispatchFieldId()+"');";
......
......@@ -389,6 +389,7 @@ import.example.telPrivate=0443215467
import.example.xingname=xingbenutzer oder E-Mail-Adresse
import.example.zipCode=8000
nocountry.doselect=-
remove=Entfernen
table.name.birthDay=Geburtsdatum
table.name.city=Stadt
table.name.country=Land
......
......@@ -389,6 +389,7 @@ import.example.telPrivate=0443215467
import.example.xingname=xing user or e-mail address
import.example.zipCode=10000
nocountry.doselect=-
remove=Remove
table.name.birthDay=Birth date
table.name.city=City
table.name.country=Country
......
......@@ -22,6 +22,7 @@ package org.olat.user.propertyhandlers.ui;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.DefaultComponentRenderer;
import org.olat.core.gui.components.form.flexible.elements.FormLink;
import org.olat.core.gui.components.form.flexible.impl.FormJSHelper;
import org.olat.core.gui.render.RenderResult;
import org.olat.core.gui.render.Renderer;
import org.olat.core.gui.render.StringOutput;
......@@ -55,10 +56,27 @@ public class SmsPhoneComponentRenderer extends DefaultComponentRenderer {
}
sb.append("'>").append(phoneNumber).append("</p>");
sb.append("<div class='o_form_example help-block'>").append(smsFte.getTranslator().translate("sms.phone.hint")).append("</div>");
if(smsFte.getAndResetFormDirty()) {
FormJSHelper.setFlexiFormDirtyOnLoad(sb, smsFte.getRootForm());
}
sb.append("<div class='form-inline'>");
FormLink editLink = smsFte.getEditLink();
if(editLink != null && editLink.isVisible()) {
Component cmp = editLink.getComponent();
cmp.getHTMLRendererSingleton().render(renderer, sb, cmp, ubu, translator, renderResult, args);
}
if(StringHelper.containsNonWhitespace(phoneNumber)) {
sb.append("&nbsp;");
FormLink removeLink = smsFte.getRemoveLink();
if(removeLink != null && removeLink.isVisible()) {
Component cmp = removeLink.getComponent();
cmp.getHTMLRendererSingleton().render(renderer, sb, cmp, ubu, translator, renderResult, args);
}
}
sb.append("</div>");
}
}
......@@ -51,6 +51,7 @@ public class SmsPhoneConfirmController extends FormBasicController {
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
setFormDescription("sms.change.confirm.descr");
tokenEl = uifactory.addTextElement("token", "sms.change.confirm.token", 32, "", formLayout);
tokenEl.setFocus(true);
FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add(buttonsCont);
......
......@@ -56,6 +56,11 @@ public class SmsPhoneController extends BasicController {
public String getPhone() {
return sendTokenCtrl.getPhone();
}
@Override
public WindowControl getWindowControl() {
return super.getWindowControl();
}
@Override
protected void doDispose() {
......
......@@ -56,10 +56,11 @@ public class SmsPhoneElement extends FormItemImpl implements FormItemCollection,
private final SmsPhoneComponent component;
private String phone;
private boolean forceFormDirty;
private final User editedUser;
private final UserPropertyHandler handler;
private FormLink editLink;
private FormLink editLink, removeLink;
private SmsPhoneController smsPhoneCtrl;
private CloseableModalController cmc;
......@@ -83,6 +84,16 @@ public class SmsPhoneElement extends FormItemImpl implements FormItemCollection,
public FormLink getEditLink() {
return editLink;
}
public FormLink getRemoveLink() {
return removeLink;
}
public boolean getAndResetFormDirty() {
boolean ffd = forceFormDirty;
forceFormDirty = false;
return ffd;
}
@Override
public void dispatchEvent(UserRequest ureq, Controller source, Event event) {
......@@ -92,9 +103,14 @@ public class SmsPhoneElement extends FormItemImpl implements FormItemCollection,
} else if(smsPhoneCtrl == source) {
if(event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
setPhone(smsPhoneCtrl.getPhone());
getComponent().setDirty(true);
forceFormDirty = true;
component.setDirty(true);
}
cmc.deactivate();
if(event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
String msg = getTranslator().translate("sms.phone.number.changed");
smsPhoneCtrl.getWindowControl().setInfo(msg);
}
smsPhoneCtrl = null;
cmc = null;
}
......@@ -106,6 +122,9 @@ public class SmsPhoneElement extends FormItemImpl implements FormItemCollection,
if(editLink != null) {
items.add(editLink);
}
if(removeLink != null) {
items.add(removeLink);
}
return items;
}
......@@ -118,8 +137,14 @@ public class SmsPhoneElement extends FormItemImpl implements FormItemCollection,
public void setRootForm(Form rootForm) {
String dispatchId = component.getDispatchID();
editLink = new FormLinkImpl(dispatchId + "_editSmsButton", "editSms", "edit", Link.BUTTON);
editLink.setDomReplacementWrapperRequired(false);
editLink.setTranslator(getTranslator());
editLink.setIconLeftCSS("o_icon o_icon_edit");
removeLink = new FormLinkImpl(dispatchId + "_removeSmsButton", "removeSms", "remove", Link.BUTTON);
removeLink.setDomReplacementWrapperRequired(false);
removeLink.setTranslator(getTranslator());
removeLink.setIconLeftCSS("o_icon o_icon_delete");
super.setRootForm(rootForm);
}
......@@ -133,6 +158,9 @@ public class SmsPhoneElement extends FormItemImpl implements FormItemCollection,
if(editLink != null && editLink.getRootForm() != getRootForm()) {
editLink.setRootForm(getRootForm());
}
if(removeLink != null && removeLink.getRootForm() != getRootForm()) {
removeLink.setRootForm(getRootForm());
}
}
@Override
......@@ -141,6 +169,8 @@ public class SmsPhoneElement extends FormItemImpl implements FormItemCollection,
String dispatchuri = form.getRequestParameter("dispatchuri");
if(editLink != null && editLink.getFormDispatchId().equals(dispatchuri)) {
doEdit(ureq);
} else if(removeLink != null && removeLink.getFormDispatchId().equals(dispatchuri)) {
doRemove();
}
}
......@@ -164,4 +194,9 @@ public class SmsPhoneElement extends FormItemImpl implements FormItemCollection,
cmc.activate();
}
}
private void doRemove() {
setPhone(null);
component.setDirty(true);
}
}
\ No newline at end of file
......@@ -83,6 +83,8 @@ public class SmsPhoneSendController extends FormBasicController {
String i18nLabel = handler.i18nFormElementLabelKey();
newPhoneEl = uifactory.addTextElement("sms.new.phone", i18nLabel, 32, "", formLayout);
newPhoneEl.setPlaceholderKey("sms.change.number.hint", null);
newPhoneEl.setExampleKey("sms.phone.number.example", null);
newPhoneEl.setFocus(true);
FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add(buttonsCont);
......
......@@ -34,6 +34,9 @@ upc.reset.config.baks=BAKS
upc.defaulttranslation=Standard\u00FCbersetzung
sms.title={0} \u00E4ndern
sms.send=SMS Authentifizierung starten
sms.phone.hint=Diese Nummer ist f\u00FCr SMS-Passwort zur\u00FCcksetzen.
sms.phone.number.changed=Ihre Telefonummer wurde erforgreich gepr\u00FCft. Sie knnen jetzt Ihr Profil speichern.
sms.phone.number.example=$org.olat.core.commons.services.sms.ui\:sms.phone.number.example
sms.change.number.title=Nummer \u00E4ndern
sms.change.number.hint=+41 12 345 67 89
sms.change.number.descr=Die Nummer muss best\u00E4tigt werden. W\u00E4hlen Sie den untenstehenden Button um die SMS Best\u00E4tigungscode zu schicken:
......
......@@ -7,6 +7,9 @@ sms.change.confirm.token=SMS confirmation code
sms.change.number.descr=The number need a confirmation. Please, choose the button below to send a confirmation code by SMS\:
sms.change.number.hint=+41 12 345 67 89
sms.change.number.title=Change the number
sms.phone.hint=the number is to reset your password per SMS.
sms.phone.number.example=$org.olat.core.commons.services.sms.ui\:sms.phone.number.example
sms.phone.number.changed=You phone was successfully checked. You can now save your profil.
sms.phone.not.available=Number not available
sms.send=Start authentication by SMS
sms.title=Edit {0}
......
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