[SYNCOPE-1059] removed final landing page and managed feedback after successful 
self create/update


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ec447484
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ec447484
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ec447484

Branch: refs/heads/SYNCOPE-808
Commit: ec44748419c080ca8a36b48a85351266f34835f7
Parents: 9b0331e
Author: Andrea Patricelli <andreapatrice...@apache.org>
Authored: Fri Apr 14 10:32:33 2017 +0200
Committer: Andrea Patricelli <andreapatrice...@apache.org>
Committed: Fri Apr 14 10:32:33 2017 +0200

----------------------------------------------------------------------
 .../syncope/client/enduser/pages/HomePage.java  | 18 +++++---
 .../syncope/client/enduser/pages/Logout.java    |  9 ++--
 .../resources/META-INF/resources/app/js/app.js  |  4 --
 .../app/js/controllers/LoginController.js       | 24 ++++------
 .../app/js/controllers/UserController.js        | 46 ++++++++++++++------
 .../META-INF/resources/app/views/success.html   | 33 --------------
 6 files changed, 58 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/ec447484/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/HomePage.java
----------------------------------------------------------------------
diff --git 
a/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/HomePage.java
 
b/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/HomePage.java
index 4c017ca..ef9ab90 100644
--- 
a/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/HomePage.java
+++ 
b/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/HomePage.java
@@ -34,13 +34,19 @@ public class HomePage extends WebPage {
         StringBuilder redirectUrl = new StringBuilder("/app/");
         if (!parameters.get("errorMessage").isNull()) {
             redirectUrl.append("#!self?errorMessage=");
-            try {
-                redirectUrl.append(
-                        
URLEncoder.encode(parameters.get("errorMessage").toString(), 
StandardCharsets.UTF_8.name()));
-            } catch (Exception e) {
-                redirectUrl.append("Generic error");
-            }
+            appendMessage(redirectUrl, 
parameters.get("errorMessage").toString());
+        } else if (!parameters.get("successMessage").isNull()) {
+            redirectUrl.append("#!self?successMessage=");
+            appendMessage(redirectUrl, 
parameters.get("successMessage").toString());
         }
         throw new NonResettingRestartException(redirectUrl.toString());
     }
+
+    private void appendMessage(final StringBuilder redirectUrl, final String 
message) {
+        try {
+            redirectUrl.append(URLEncoder.encode(message, 
StandardCharsets.UTF_8.name()));
+        } catch (Exception e) {
+            redirectUrl.append("Generic error");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/ec447484/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Logout.java
----------------------------------------------------------------------
diff --git 
a/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Logout.java
 
b/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Logout.java
index 37e3103..ced2654 100644
--- 
a/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Logout.java
+++ 
b/client/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Logout.java
@@ -21,22 +21,23 @@ package org.apache.syncope.client.enduser.pages;
 import org.apache.syncope.client.enduser.SyncopeEnduserSession;
 import org.apache.syncope.client.enduser.commons.Constants;
 import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 public class Logout extends WebPage {
 
     private static final long serialVersionUID = -4514869014471715933L;
 
-    public Logout() {
-        super();
+    public Logout(final PageParameters parameters) {
+        super(parameters);
 
         @SuppressWarnings("unchecked")
         Class<? extends WebPage> beforeLogout = (Class<? extends WebPage>) 
SyncopeEnduserSession.get().
                 getAttribute(Constants.BEFORE_LOGOUT);
         if (beforeLogout == null) {
             SyncopeEnduserSession.get().invalidateNow();
-            setResponsePage(getApplication().getHomePage());
+            setResponsePage(getApplication().getHomePage(), 
getPageParameters());
         } else {
-            setResponsePage(beforeLogout);
+            setResponsePage(beforeLogout, getPageParameters());
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/ec447484/client/enduser/src/main/resources/META-INF/resources/app/js/app.js
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/js/app.js 
b/client/enduser/src/main/resources/META-INF/resources/app/js/app.js
index 6bc7b8a..253609a 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/js/app.js
+++ b/client/enduser/src/main/resources/META-INF/resources/app/js/app.js
@@ -119,10 +119,6 @@ app.config(['$stateProvider', '$urlRouterProvider', 
'$httpProvider', '$translate
               url: '/finish',
               templateUrl: 'views/user-form-finish.html'
             })
-            .state('success', {
-              url: '/success',
-              templateUrl: 'views/success.html'
-            })
             .state('update', {
               url: '/self/update',
               templateUrl: 'views/editUser.html',

http://git-wip-us.apache.org/repos/asf/syncope/blob/ec447484/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/LoginController.js
----------------------------------------------------------------------
diff --git 
a/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/LoginController.js
 
b/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/LoginController.js
index 460d12c..1b68e07 100644
--- 
a/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/LoginController.js
+++ 
b/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/LoginController.js
@@ -67,21 +67,15 @@ angular.module("login").controller("LoginController", 
['$scope', '$rootScope', '
     $scope.passwordReset = function () {
       $location.path("/passwordreset");
     };
-    $scope.errorAPI = function () {
-      $http.get("/syncope-enduser/api/error").success(function (data) {
-        console.debug("errorAPI response: ", data);
-      });
-    };
-    $scope.sampleAPI = function () {
-      $http.get("/syncope-enduser/api/user-self").success(function (data) {
-        console.debug("sampleAPI response: ", data);
-      });
-    };
-    $scope.schemaAPI = function () {
-      $http.get("/syncope-enduser/api/schema").success(function (data) {
-        console.debug("schemaAPI response: ", data);
-      });
-    };
+    $scope.$watch(function () {
+      return $location.search().successMessage;
+    }, function (successMessage) {
+      if (successMessage) {
+        var message = (' ' + successMessage).slice(1);
+        $scope.showSuccess(message, $scope.notification);
+        delete $location.$$search.successMessage;
+      }
+    });
     $scope.$watch(function () {
       return $location.search().errorMessage;
     }, function (errorMessage) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/ec447484/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
----------------------------------------------------------------------
diff --git 
a/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
 
b/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
index e2c0540..fbee936 100644
--- 
a/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
+++ 
b/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
@@ -23,9 +23,10 @@
 
 angular.module("self").controller("UserController", ['$scope', '$rootScope', 
'$location', "$state",
   'UserSelfService', 'SchemaService', 'RealmService', 'ResourceService', 
'SecurityQuestionService',
-  'GroupService', 'AnyService', 'UserUtil', 'GenericUtil', 
'ValidationExecutor', '$translate',
+  'GroupService', 'AnyService', 'UserUtil', 'GenericUtil', 
'ValidationExecutor', '$translate', '$filter',
   function ($scope, $rootScope, $location, $state, UserSelfService, 
SchemaService, RealmService,
-          ResourceService, SecurityQuestionService, GroupService, AnyService, 
UserUtil, GenericUtil, ValidationExecutor, $translate) {
+          ResourceService, SecurityQuestionService, GroupService, AnyService, 
UserUtil, GenericUtil, ValidationExecutor,
+          $translate, $filter) {
 
     $scope.user = {};
     $scope.confirmPassword = {
@@ -228,7 +229,7 @@ angular.module("self").controller("UserController", 
['$scope', '$rootScope', '$l
             return x < y ? -1 : x > y ? 1 : 0;
           });
         }, function (e) {
-          $scope.showError("An error occur during retrieving groups " + e, 
$scope.notification);
+          $scope.showError("An error occur while retrieving groups " + e, 
$scope.notification);
         });
       };
 
@@ -248,10 +249,10 @@ angular.module("self").controller("UserController", 
['$scope', '$rootScope', '$l
               }
             }
           }, function (e) {
-            $scope.showError("An error occur during retrieving auxiliary 
classes " + e, $scope.notification);
+            $scope.showError("An error occur while retrieving auxiliary 
classes " + e, $scope.notification);
           });
         }, function (e) {
-          $scope.showError("An error occur during retrieving auxiliary classes 
" + e, $scope.notification);
+          $scope.showError("An error occur while retrieving auxiliary classes 
" + e, $scope.notification);
         });
       };
 
@@ -302,7 +303,7 @@ angular.module("self").controller("UserController", 
['$scope', '$rootScope', '$l
             initProperties();
           }
         }, function (e) {
-          console.error("Error during user read ", e);
+          console.error("Error while user read ", e);
         });
       };
 
@@ -401,10 +402,14 @@ angular.module("self").controller("UserController", 
['$scope', '$rootScope', '$l
       var wrappedUser = UserUtil.getWrappedUser(user);
       if ($scope.createMode) {
         UserSelfService.create(wrappedUser, 
$scope.captchaInput.value).then(function (response) {
-          console.debug("User " + $scope.user.username + " 
SUCCESSFULLY_CREATED");
+          console.debug("User " + $scope.user.username + " successfully 
CREATED");
           $rootScope.currentUser = $scope.user.username;
           $rootScope.currentOp = "SUCCESSFULLY_CREATED";
-          $state.go('success');
+          $scope.success({successMessage: $filter('translate')(["USER"]).USER
+                    + " "
+                    + $scope.user.username
+                    + " "
+                    + 
$filter('translate')(["SUCCESSFULLY_CREATED"]).SUCCESSFULLY_CREATED});
         }, function (response) {
           console.error("Error during user creation: ", response);
           var errorMessage;
@@ -417,12 +422,14 @@ angular.module("self").controller("UserController", 
['$scope', '$rootScope', '$l
         });
       } else {
         UserSelfService.update(wrappedUser, 
$scope.captchaInput.value).then(function (response) {
-          console.debug("User " + $scope.user.username + " 
SUCCESSFULLY_UPDATED");
+          console.debug("User " + $scope.user.username + " successfully 
UPDATED");
           $rootScope.currentUser = $scope.user.username;
           $rootScope.currentOp = "SUCCESSFULLY_UPDATED";
-          $state.go('success');
-
-          $scope.logout();
+          $scope.logout({successMessage: $filter('translate')(["USER"]).USER
+                    + " "
+                    + $scope.user.username
+                    + " "
+                    + 
$filter('translate')(["SUCCESSFULLY_UPDATED"]).SUCCESSFULLY_UPDATED});
         }, function (response) {
           console.info("Error during user update: ", response);
           var errorMessage;
@@ -541,10 +548,21 @@ angular.module("self").controller("UserController", 
['$scope', '$rootScope', '$l
       kendo.culture($rootScope.languages.selectedLanguage.code);
     };
 
-    $scope.logout = function () {
+    $scope.logout = function (params) {
       $translate.use($scope.languages.selectedLanguage.code);
       $rootScope.endReached = false;
-      window.location.href = 
'../wicket/bookmarkable/org.apache.syncope.client.enduser.pages.Logout';
+      var destination = params && params.successMessage
+              ? 
'../wicket/bookmarkable/org.apache.syncope.client.enduser.pages.Logout?successMessage='
 + params.successMessage
+              : 
'../wicket/bookmarkable/org.apache.syncope.client.enduser.pages.Logout';
+      window.location.href = destination;
+    };
+
+    $scope.success = function (params) {
+      $rootScope.endReached = false;
+      var destination = params && params.successMessage
+              ? 
'../wicket/bookmarkable/org.apache.syncope.client.enduser.pages.HomePage?successMessage='
 + params.successMessage
+              : 
'../wicket/bookmarkable/org.apache.syncope.client.enduser.pages.HomePage';
+      window.location.href = destination;
     };
 
     $scope.redirect = function () {

http://git-wip-us.apache.org/repos/asf/syncope/blob/ec447484/client/enduser/src/main/resources/META-INF/resources/app/views/success.html
----------------------------------------------------------------------
diff --git 
a/client/enduser/src/main/resources/META-INF/resources/app/views/success.html 
b/client/enduser/src/main/resources/META-INF/resources/app/views/success.html
deleted file mode 100644
index 1be0c9a..0000000
--- 
a/client/enduser/src/main/resources/META-INF/resources/app/views/success.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<div ng-cloak class="container">
-  <div class="login-container" style="box-sizing: border-box; ">
-    <div id="form-container" class="col-md-6 col-md-offset-3" 
style="box-sizing: border-box; background-color: #F7F7F7;">
-      <div ng-controller="UserController">
-        <div class="page-header" style="text-align: left; font-weight: 700;">  
        
-          <span>{{'USER'| translate}} <b> {{currentUser}}</b> {{currentOp| 
translate}}</span>
-        </div>
-        <span>
-          <a id="redirect" href="javascript:void(0);" class="btn btn-link" 
ng-click="redirect()">{{'GOBACKHOME'| translate}}</a>
-        </span> 
-      </div>
-    </div>
-  </div>
-</div>
\ No newline at end of file

Reply via email to