You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/12/14 13:38:09 UTC
[isis] branch master updated: ISIS-2919: sign-in form: sorted time-zones
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 62a6cb5 ISIS-2919: sign-in form: sorted time-zones
62a6cb5 is described below
commit 62a6cb55ac766a47958dfe9795d34a1afc047d19
Author: andi-huber <ah...@apache.org>
AuthorDate: Tue Dec 14 14:37:58 2021 +0100
ISIS-2919: sign-in form: sorted time-zones
- also make selected time-zone sticky, don't clear on form reset
---
.../wicket/ui/pages/login/IsisSignInPanel.html | 13 ++++++++--
.../wicket/ui/pages/login/SignInPanelAbstract.java | 30 +++++++++++++++-------
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.html b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.html
index ff0d0e9..3a2cf63 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.html
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.html
@@ -31,7 +31,7 @@
</div>
<div class="form-group">
<label wicket:for="timezone"><wicket:message key="timezoneLabel"/></label>
- <select class="form-control" wicket:id="timezone" name="timezone"/>
+ <select class="form-control" wicket:id="timezone" name="timezone" data-noreset="true"/>
</div>
<div class="form-check" wicket:id="rememberMeContainer">
<label>
@@ -40,7 +40,7 @@
</div>
<button type="submit" class="btn btn-primary"><wicket:message key="signInButtonLabel"/></button>
- <button type="reset" class="btn btn-secondary"><wicket:message key="resetButtonLabel"/></button>
+ <button type="button" class="btn btn-secondary" onclick="customFormReset()"><wicket:message key="resetButtonLabel"/></button>
<div class="form-group">
<a wicket:id="passwdResetLink" class="btn btn-block btn-link"><wicket:message key="forgotPasswordLinkLabel"/></a>
@@ -51,6 +51,15 @@
</div>
</form>
+
+ <script>
+ function customFormReset() {
+ var fieldsToReset = document.querySelectorAll("input:not([data-noreset='true'])")
+ for(var i=0;i<fieldsToReset.length;i++){
+ fieldsToReset[i].value = null;
+ }
+ }
+ </script>
</wicket:panel>
</body>
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/SignInPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/SignInPanelAbstract.java
index 07801d4..86ce6bb 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/SignInPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/SignInPanelAbstract.java
@@ -21,6 +21,7 @@ import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.core.runtime.context.IsisAppCommonContext.HasCommonContext;
import org.apache.isis.viewer.wicket.model.util.CommonContextUtils;
@@ -108,21 +109,26 @@ implements HasCommonContext {
if (isSignedIn() == false) {
IAuthenticationStrategy authenticationStrategy = getApplication().getSecuritySettings()
.getAuthenticationStrategy();
- // get username and password from persistence store
+ // get username, password and zoneID from persistence store
String[] data = authenticationStrategy.load();
- if ((data != null) && (data.length > 1))
- {
+ if ((data != null) && (data.length > 1)) {
// try to sign in the user
- if (signIn(data[0], data[1]))
- {
+ if (signIn(data[0], data[1])) {
username = data[0];
password = data[1];
+ if(data.length > 2
+ && _Strings.isNotEmpty(data[2])) {
+ try {
+ timezone = ZoneId.of(data[2]);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
onSignInRemembered();
- }
- else
- {
+ } else {
// the loaded credentials are wrong. erase them.
authenticationStrategy.remove();
}
@@ -225,6 +231,7 @@ implements HasCommonContext {
@Override
protected List<ZoneId> load() {
return ZoneId.getAvailableZoneIds().stream()
+ .sorted()
.map(ZoneId::of)
.collect(Collectors.toList());
}
@@ -253,7 +260,12 @@ implements HasCommonContext {
if (signIn(getUsername(), getPassword())) {
if (rememberMe == true) {
- strategy.save(username, password);
+ strategy.save(
+ username,
+ password,
+ timezone!=null
+ ? timezone.getId()
+ : "");
} else {
strategy.remove();
}