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();
                 }