var JTCRMUserManagement=function(){var c="frmCreateUser",l="fmrSetUserPassword",w="txtEmail",C="Email Address",f="txtFullName",n="Full Name",m="chkTaskUser",b="txtCardMember",u="chkIsInactive",d="cboRoles",h="txtPassword",g="txtConfirmPassword",o="cboAnyOrUserPermissions",p="chkIsLocked",t={ptAdministrator:1,ptSelectedRole:2},R=[{id:t.ptAdministrator,displayValue:"Administrator"},{id:t.ptSelectedRole,displayValue:"Selected Role"}];function F(){return e=(e=getObj(c)[o])[e.selectedIndex].value,parseInt(e,10)===t.ptAdministrator;var e}function P(e){e=e[d];return e[e.selectedIndex].value}function T(){var e=getObj(c),a=mjtElemData(e,"userId"),s=F(),r=P(e),l=!e[p].disabled&&!e[p].checked;jsrsExecuteWithErrorP("Admin2_UpdateUser2",rsCallbackHandleStandardJSONResponseWithHideAndRefresh,"Updating user",{userId:a,fullName:trim(e[f].value),isTaskUser:e[m].checked?1:0,cardMember:trim(e[b].value),isInactive:e[u].checked?1:0,unlockUser:l?1:0,isAdmin:s?1:0,role:s?null:r})}function S(e){var a=e.cdBuilder,s=e.isAdmin,r=e.roleId,e=e.arrRoles.map(function(e){return{cboValue:e.roleId||"",rawContent:e.roleName||"",isSelectedOption:e.roleId===r}}),l=s?t.ptAdministrator:t.ptSelectedRole,i=R.map(function(e){return{cboValue:e.id,rawContent:e.displayValue,isSelectedOption:e.id===l}});a.addSectionHeaderRow({rawTitle:"Permissions",additionalCellClasses:"width35em"}),e.splice(0,0,{cboValue:""}),a.addDropdown({fieldName:o,arrAvailableOptions:i,fieldClasses:"marginRightLarge width10em",onClickChangeJS:"JTCRMUserManagement.PROTECTED.onRoleSelectChanged()",strPostFieldHTML:cdBuildDropdown({fieldName:d,arrAvailableOptions:e,fieldClasses:s?"hideElement":""})})}function s(){var e=getObj(c),e=e?e[d]:null;e&&(F()?e.classList.add("hideElement"):e.classList.remove("hideElement"))}function a(e){var a=e.userInfo,e=e.arrRoles,s=a.userId,r=a.email,l=a.cardMember,i=a.isAdmin,d=a.roleId,o=g_jtcrmIsAdmin?cdBuildFAFontIconButton({fontId:FontIconId_Enum.fiiLock,doubleQuoteEncodedOnClickJS:"JTCRMUserManagement.PROTECTED.promptSetUserPassword()",doubleQuoteEncodedTitle:"Set User Password"}):"",t=jtcrmHasAccess(JTCRMSecuredObject_Enum.soUserSettings,AccessRight_Enum.mjtARDelete),t=new ClientDialogBuilder({formId:c,formTitle:"Edit User",focusFieldName:f,focusFieldOnMobile:1,okButtonDisplayText:cdBuildMnemonicLabelHTML({rawLabel:"Save",mnemonicChar:"s",mnemonicActionJS:"JTCRMUserManagement.PROTECTED.submitUpdateUser()"}),fnSubmit:T,arrExtraHeaderButtons:[t?DialogHeaderDeleteButton.buildDialogHeaderDeleteButton({remoteScriptingFunctionName:"Admin2_DeleteUser2",deletePayload:{userId:s},rawButtonTitle:"Delete User",rawConfirmationMessageText:'Are you sure you want to delete "'+r+'"?',displayNameOfObjectToDelete:"User"}):null,t?'':null,o,ClientDialogModule.buildChangeLogHeaderButton({changeLogUrl:pageUserEventLog+s})]}),o={formElemData:{userId:s}};t.addFlexibleFieldRow({rawLabel:C,rawValue:r||""}),t.addTextFieldRow(f,{rawLabel:n,mnemonicChar:"n",additionalLabelCellClasses:"clsNarrowField",fieldValue:a.fullName||"",maxLength:80,autofocus:1}),t.addTextFieldRow(b,{rawLabel:"Card Member",mnemonicChar:"m",fieldValue:l||"",maxLength:80,autofocus:1}),t.addCheckboxRow(m,{rawLabel:"Task User",mnemonicChar:"t",checked:a.isTaskUser}),t.addCheckboxRow(u,{rawLabel:"Inactive",mnemonicChar:"i",checked:a.isInactive}),t.addCheckboxRow(p,{rawLabel:"Locked",checked:a.isLocked,disabled:!a.isLocked}),S({cdBuilder:t,isAdmin:i,roleId:d,arrRoles:e}),t.showClientDialog(o)}function U(e){ClientDialogModule.showDialogWithConsequence({formTitle:"Error Setting Password",simpleRowContentHtml:e,subdialogDismisalFocusFieldName:h})}function r(){var e,a,s,r,l=getObj(c),i=new FormValidator,d=l[w],o=d.value,t={},n=l[b].value,m=F(),u=P(l);i.ValidateTextField({textFieldElem:d,fieldDisplayName:C,isRequiredField:1})&&(d=(d={emailAddress:o}).emailAddress,(d=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(d))||ClientDialogModule.showDialogWithConsequence({formTitle:"Invalid Email",simpleRowContentHtml:"Invalid email address.",subdialogDismisalFocusFieldName:w}),d)&&(d=(i={form:l,resultValueHolder:t}).form,i=i.resultValueHolder,a=d[w],r=(s=d[h]).value,d=d[g].value,(i.password=r)!==d?showInfoDialog("Passwords don't match!","Mismatched Passwords",1,g):e=validateClientSidePasswordVals(a,s,U),e)&&jsrsExecuteWithErrorP("Admin2_CreateUser2",rsCallbackHandleStandardJSONResponseWithHideAndRefresh,"Creating User",{emailAddress:o,password:t.password,fullName:trim(l[f].value),cardMemberName:n,isAdmin:m?1:0,roleId:m?"":u})}function e(e){var e=e.arrRoles,a=new ClientDialogBuilder({formId:c,formTitle:"Create User",focusFieldName:w,focusFieldOnMobile:1,okButtonDisplayText:cdBuildMnemonicLabelHTML({rawLabel:"Save",mnemonicChar:"s",mnemonicActionJS:"JTCRMUserManagement.PROTECTED.submitCreateUser()"}),fnSubmit:r});a.addTextFieldRow(w,{rawLabel:C,mnemonicChar:"e",maxLength:200,additionalLabelCellClasses:"clsNarrowField",autofocus:1,isEmail:1}),a.addTextFieldRow(f,{rawLabel:n,mnemonicChar:"n",maxLength:80,autofocus:1}),a.addTextFieldRow(h,{rawLabel:"Password",mnemonicChar:"p",maxLength:80,isPasswordField:1}),a.addTextFieldRow(g,{rawLabel:"Confirm Password",mnemonicChar:"c",maxLength:80,isPasswordField:1}),a.addTextFieldRow(b,{rawLabel:"Card Member",mnemonicChar:"m",maxLength:80}),S({cdBuilder:a,arrRoles:e}),a.showClientDialog()&&s()}function i(e){var a,s=e.userNameField,r=e.newPasswordField,l=r.id,i=l?"":r.name,d=function(e){ClientDialogModule.showDialogWithConsequence({formTitle:"Error Validating New Password",simpleRowContentHtml:'
'+e+"
",subdialogDismisalFocusFieldId:l,subdialogDismisalFocusFieldName:i})};return r.value!==e.confirmPasswordField.value?d("Passwords do not match."):a=validateClientSidePasswordVals(s,r,function(e){d(e)}),a}function D(){var e=getObj(l),a=mjtElemData(e,"userId"),s=e[h];i({newPasswordField:s,confirmPasswordField:e[g]})&&jsrsExecuteWithErrorP("Admin2_AdminSetUserPassword",rsCallbackHandleStandardJSONResponse,"Updating User's Password",{userId:a,newPassword:s.value},{fnOnSuccess:function(){hideDialog(),ClientDialogModule.showDialogWithConsequence({formTitle:"Password Updated",simpleRowContentHtml:"The user's password has been updated."})}})}function E(e){var a=e.userId,s=e.emailAddress,e=e.fullName,a={formElemData:{userId:a}},r=new ClientDialogBuilder({formId:l,formTitle:"Set User Password",focusFieldName:h,focusFieldOnMobile:1,okButtonDisplayText:cdBuildMnemonicLabelHTML({rawLabel:"Set Password",mnemonicChar:"s",mnemonicActionJS:"JTCRMUserManagement.PROTECTED.submitSetUserPassword()"}),fnSubmit:D});r.addFlexibleFieldRow({rawLabel:"User",additionalCellClasses:"clsNarrowField",rawValue:s}),r.addFlexibleFieldRow({rawLabel:"Full Name",rawValue:e}),r.addSectionHeaderRow(),r.addTextFieldRow(h,{rawLabel:"Password",isPasswordField:1}),r.addTextFieldRow(g,{rawLabel:"Confirm Password",isPasswordField:1}),r.showClientDialog(a)}return{showCreateUserDialog:function(){jsrsExecuteWithErrorP("Admin2_GetRolesAvailableForUsers",rsCallbackHandleStandardJSONResponse,"Looking up available roles",{},{fnOnSuccess:e})},showUserDialog:function(e){e=e.userId,jsrsExecuteWithErrorP("Admin2_GetUserInfoForEdit",rsCallbackHandleStandardJSONResponse,"Looking up user for edit",{userId:e},{fnOnSuccess:a})},validatePasswordForUpdate:i,PROTECTED:{submitCreateUser:r,submitUpdateUser:T,onRoleSelectChanged:s,promptSetUserPassword:function(){var e=getObj(c),a=mjtElemData(e,"userId");hideDialogP({callback:function(){jsrsExecuteWithErrorP("Admin2_GetUserInfoForUpdatePassword",rsCallbackHandleStandardJSONResponse,"Looking up user for update password",{userId:a},{fnOnSuccess:E})}})},submitSetUserPassword:D}}}();