[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