From 280c5e496d1d9795bd3d4d39762d24701cdda567 Mon Sep 17 00:00:00 2001 From: dilanua Date: Fri, 12 Aug 2016 13:49:38 +0530 Subject: [PATCH] Adding user edit UI and fixes --- .../app/modules/business-controllers/user.js | 10 +++-- .../pages/cdmf.page.user.create/create.hbs | 4 +- .../public/js/bottomJs.js | 2 +- .../app/pages/cdmf.page.user.edit/edit.hbs | 22 ++++++---- .../app/pages/cdmf.page.user.edit/edit.js | 41 ++++++++++--------- .../app/pages/cdmf.page.user.edit/edit.json | 2 +- .../cdmf.page.user.edit/public/js/bottomJs.js | 23 ++++++----- .../cdmf.page.users/public/js/listing.js | 16 ++++---- 8 files changed, 67 insertions(+), 53 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/user.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/user.js index b3b8ff7e8e..bc5c727bcb 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/user.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/user.js @@ -42,7 +42,7 @@ var userModule = function () { privateMethods.getCarbonUser = function () { var carbon = require("carbon"); var carbonUser = session.get(constants["USER_SESSION_KEY"]); - var utility = require("/modules/utility.js")["utility"]; + var utility = require("/app/modules/utility.js")["utility"]; if (!carbonUser) { log.error("User object was not found in the session"); throw constants["ERRORS"]["USER_NOT_FOUND"]; @@ -174,7 +174,11 @@ var userModule = function () { utility.startTenantFlow(carbonUser); var url = devicemgtProps["httpsURL"] + devicemgtProps["backendRestEndpoints"]["deviceMgt"] + "/users/" + encodeURIComponent(username) + "/roles"; - return privateMethods.callBackend(url, constants["HTTP_GET"]); + var response = privateMethods.callBackend(url, constants["HTTP_GET"]); + if (response.status == "success") { + response.content = parse(response.content).roles; + } + return response; } catch (e) { throw e; } finally { @@ -265,7 +269,7 @@ var userModule = function () { /** * Get Platforms. */ - //TODO Move this piece of logic out of user.js to somewhere else appropriate. + //TODO Move this piece of logic out of user.js to somewhere else appropriate. publicMethods.getPlatforms = function () { var carbonUser = session.get(constants["USER_SESSION_KEY"]); var utility = require("/app/modules/utility.js")["utility"]; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/create.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/create.hbs index 9fc20f8049..af9184b5f6 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/create.hbs +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/create.hbs @@ -56,9 +56,9 @@
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/public/js/bottomJs.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/public/js/bottomJs.js index c254b82cc9..44eb92993d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/public/js/bottomJs.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.create/public/js/bottomJs.js @@ -86,7 +86,7 @@ validateInline["user-name"] = function () { validateInline["first-name"] = function () { var firstnameInput = $("input#firstname"); if (firstnameInput.val()) { - disableInlineError("firstNameField", "fnError"); + disableInlineError("firstNameField", "fnError"); } else { enableInlineError("firstNameField", "fnError"); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.hbs index 4597dae477..c041cf7aa7 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.hbs +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.hbs @@ -15,7 +15,7 @@ specific language governing permissions and limitations under the License. }} -{{unit "cdmf.unit.ui.title" pageTitle="User Management"}} +{{unit "cdmf.unit.ui.title" pageTitle="User Management | Edit User"}} {{#zone "breadcrumbs"}}
  • @@ -51,6 +51,15 @@ + +
    + +
    @@ -59,8 +68,6 @@ data-errormsg="{{usernameRegExViolationErrorMsg}}" class="form-control" value="{{editUser.username}}" disabled/> - -
    - + {{#each rolesByUserStore}} {{/each}} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.js index a8eab03731..bcedb8361c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.js @@ -16,14 +16,16 @@ * under the License. */ -function onRequest(context) { +function onRequest() { + var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"]; var userModule = require("/app/modules/business-controllers/user.js")["userModule"]; + var userName = request.getParameter("username"); var user = userModule.getUser(userName)["content"]; - var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"]; + if (user) { var title; - if (user.firstname || user.lastname) { + if (user.firstname && user.lastname) { title = user.firstname + " " + user.lastname; } else { title = user.username; @@ -34,6 +36,8 @@ function onRequest(context) { if (userName.indexOf("/") > -1) { userStore = userName.substr(0, userName.indexOf('/')); } + page["userStore"] = userStore; + var response = userModule.getUser(userName); if (response["status"] == "success") { @@ -41,28 +45,27 @@ function onRequest(context) { } response = userModule.getRolesByUsername(userName); + var rolesByUsername; if (response["status"] == "success") { - page["usersRoles"] = response["content"]; + rolesByUsername = response["content"]; } + response = userModule.getRolesByUserStore(userStore); + var rolesByUserStore; if (response["status"] == "success") { - var roleVals = response["content"]; - var filteredRoles = []; - var prefix = "Application"; - for (i = 0; i < roleVals.length; i++) { - if(roleVals[i].indexOf(prefix) < 0){ - filteredRoles.push(roleVals[i]); - } - } - page["userRoles"] = filteredRoles; + rolesByUserStore = response["content"]; } + page["rolesByUsername"] = rolesByUsername; + page["rolesByUserStore"] = rolesByUserStore; } - page["usernameJSRegEx"] = devicemgtProps.userValidationConfig.usernameJSRegEx; - page["usernameRegExViolationErrorMsg"] = devicemgtProps.userValidationConfig.usernameRegExViolationErrorMsg; - page["firstnameJSRegEx"] = devicemgtProps.userValidationConfig.firstnameJSRegEx; - page["firstnameRegExViolationErrorMsg"] = devicemgtProps.userValidationConfig.firstnameRegExViolationErrorMsg; - page["lastnameJSRegEx"] = devicemgtProps.userValidationConfig.lastnameJSRegEx; - page["lastnameRegExViolationErrorMsg"] = devicemgtProps.userValidationConfig.lastnameRegExViolationErrorMsg; + + page["usernameJSRegEx"] = devicemgtProps["userValidationConfig"]["usernameJSRegEx"]; + page["usernameRegExViolationErrorMsg"] = devicemgtProps["userValidationConfig"]["usernameRegExViolationErrorMsg"]; + page["firstnameJSRegEx"] = devicemgtProps["userValidationConfig"]["firstnameJSRegEx"]; + page["firstnameRegExViolationErrorMsg"] = devicemgtProps["userValidationConfig"]["firstnameRegExViolationErrorMsg"]; + page["lastnameJSRegEx"] = devicemgtProps["userValidationConfig"]["lastnameJSRegEx"]; + page["lastnameRegExViolationErrorMsg"] = devicemgtProps["userValidationConfig"]["lastnameRegExViolationErrorMsg"]; + return page; } \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.json b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.json index fe718dc4fd..cfa389ca80 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.json +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/edit.json @@ -1,5 +1,5 @@ { "version": "1.0.0", - "uri": "/user/edit", + "uri": "/user/edit", "layout": "cdmf.layout.default" } \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/public/js/bottomJs.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/public/js/bottomJs.js index 7c59cd2494..0f89ee66b0 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/public/js/bottomJs.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.user.edit/public/js/bottomJs.js @@ -32,6 +32,8 @@ function inputIsValid(regExp, inputString) { var validateInline = {}; var clearInline = {}; +var deviceMgtBasePath = "/api/device-mgt/v1.0"; + var enableInlineError = function (inputField, errorMsg, errorSign) { var fieldIdentifier = "#" + inputField; var errorMsgIdentifier = "#" + inputField + " ." + errorMsg; @@ -181,6 +183,7 @@ $(document).ready(function () { var firstnameInput = $("input#firstname"); var lastnameInput = $("input#lastname"); var charLimit = parseInt($("input#username").attr("limit")); + var domain = $("#userStore").val(); var username = usernameInput.val().trim(); var firstname = firstnameInput.val(); var lastname = lastnameInput.val(); @@ -215,7 +218,7 @@ $(document).ready(function () { } else { var addUserFormData = {}; - addUserFormData.username = username; + addUserFormData.username = domain + "/" + username; addUserFormData.firstname = firstname; addUserFormData.lastname = lastname; addUserFormData.emailAddress = emailAddress; @@ -225,14 +228,13 @@ $(document).ready(function () { } addUserFormData.roles = roles; - var addUserAPI = "/devicemgt_admin/users?username=" + username; + var addUserAPI = deviceMgtBasePath + "/users/" + username; invokerUtil.put( addUserAPI, addUserFormData, - function (data) { - data = JSON.parse(data); - if (data["statusCode"] == 201) { + function (data, textStatus, jqXHR) { + if (jqXHR.status == 201) { // Clearing user input fields. $("input#username").val(""); $("input#firstname").val(""); @@ -243,13 +245,14 @@ $(document).ready(function () { $("#user-create-form").addClass("hidden"); $("#user-created-msg").removeClass("hidden"); } - }, function (data) { - if (data["statusCode"] == 409) { + }, function (jqXHR) { + var payload = JSON.parse(jqXHR.responseText); + if (jqXHR.status == 409) { $(errorMsg).text("User : " + username + " doesn't exists. You cannot proceed."); - } else if (data["statusCode"] == 500) { - $(errorMsg).text("An unexpected error occurred @ backend server. Please try again later."); + } else if (jqXHR.status == 500) { + $(errorMsg).text("An unexpected error occurred at backend server. Please try again later."); } else { - $(errorMsg).text(data.errorMessage); + $(errorMsg).text(payload.message); } $(errorMsgWrapper).removeClass("hidden"); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.users/public/js/listing.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.users/public/js/listing.js index 3d48c71ae8..4b618f2973 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.users/public/js/listing.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.users/public/js/listing.js @@ -264,12 +264,12 @@ function loadUsers(searchParam) { }; return JSON.stringify( json ); - }; + } var fnCreatedRow = function( nRow, aData, iDataIndex ) { $(nRow).attr('data-type', 'selectable'); $(nRow).attr('data-username', aData["filter"]); - }; + } var columns = [ { @@ -302,19 +302,19 @@ function loadUsers(searchParam) { class: "text-right content-fill text-left-on-grid-view no-wrap", data: null, render: function ( data, type, row, meta ) { - return ' ' + ' ' + ' ' + - '' + + '' + ' ' + ' ' + - ' ' + ' <' + '/i> ' +