Built files from Bizgaze WebServer
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

homeaffairsregisteruser.js 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Themes;
  13. (function (Themes) {
  14. let Compact;
  15. (function (Compact) {
  16. let Components;
  17. (function (Components) {
  18. class HomeAffairsRegisterUser extends Unibase.Platform.Core.BaseComponent {
  19. jsFiles() {
  20. return ["tenants/themes/compact/index.anonymous.js", "platform/membership/managers/accountmanager.js", "libs/passwordrequirement/passwordrequirement.js"];
  21. }
  22. cssFiles() {
  23. return ["libs/passwordrequirement/passwordrequirement.css"];
  24. }
  25. html(id, containerid) {
  26. let asset_url = _appsettings.asset_url();
  27. if (jQuery("#external-form").length === 0) {
  28. var index = new Components.Index_Anonymous();
  29. index.init(null);
  30. }
  31. let bg_image;
  32. if (($(window).width()) > 1200) {
  33. bg_image = 'homeaffariesdesktopbg.jpg';
  34. }
  35. else {
  36. bg_image = 'homeaffariesmobilebg.jpg';
  37. }
  38. const html = `<div class="row p-4" id="frm_RegisterUser_homeaffairs" style="background:url('` + asset_url + `tenants/themes/compact/imgs/homeaffairs/` + bg_image + `');background-size:cover;height: 100vh;"><div class="col-xl-5"><div class="banner-img-container h-100 d-flex align-items-center justify-content-center pl-md-145"><img src="` + asset_url + `tenants/themes/compact/imgs/homeaffairs/aa.png" alt="img" class="img-fluid"> </div></div><div class="col-xl-7 d-flex justify-content-center align-items-center"><form default="" data-validate="parsley" data-isdynamic="false"><div id="div_ValidationSummary"></div><div id="div_RegisterUser"><h1 class="display-4 mb-30 text-center text-white">Registration</h1><div class="alert alert-primary d-none">We will send new code to your <a href=""><u>Email or Phone</u></a> to create your password.</div><div class="form-group"><input class="form-control" required autocomplete="off" placeholder="Enter Registered Email or Phone" id="txt_EmailorPhone" type="text"></div>
  39. <div class="form-group floating-label-form-group floating-label-form-group-with-value focus" id="div_TenantsAutoComplete">
  40. <select id="ddl_Tenant" class="form-control value-control" data-isdynamic="false"></select></div><button class="btn btn-primary btn-block border-0" type="button" id="btn_SendOtp" style="background:#001F5D;padding: 10px !important;">Confirm</button><p class="text-right mt-20"><a href="Index.html#/login">Back to login</a></p></div><div id="div_CreatePswd" class="d-none"><h1 class="display-5 mb-30 text-center">Create your Password</h1><div class="form-group"><label class="form-control" id="lbl_Email"></label></div><div class="form-group"><input class="form-control pr-password " required id="txt_NewPswd" placeholder="New password" type="password" autocomplete="new-password"><span toggle="#txt_NewPswd" id="passwordHide" class="fa fa-eye-slash font-15 mr-10 field-icon"></span><div class="showpwsdreq"></div></div><div class="form-group"><input class="form-control" required id="txt_ConfirmPswd" placeholder="Re-enter new password" type="password" autocomplete="new-password"><span toggle="#txt_ConfirmPswd" id="confirmPasswordHide" class="fa fa-eye-slash font-15 mr-10 field-icon"></span></div><button class="btn btn-primary btn-block mb-20" type="button" id="btn_CreatePswd">Create Password</button><p class="text-right"><a href="Index.html#/login">Back to login</a></p></div><div id="div_SuccessMsg" class="d-none"><div class="d-62 bg-white rounded-circle mb-10 d-flex align-items-center justify-content-center mx-auto"><i class="fa fa-check font-50 text-success"></i></div><h1 class="display-4 mb-20 text-center">Password Created Successfully</h1><p class="text-center"><a href="Index.html#/login">Click here to Login</a></p></div></form><div><div id="modal_Otp" class="modal fade hide"><div class="modal-dialog"><div class="modal-content"><div class="modal-header mt-2 mb-2"><h5 class="modal-title pull-left">Mobile or Email Verification</h5><button type="button" class="btn btn-primary btn-simple pull-right" data-dismiss="modal" aria-hidden="true" >&times;</button></div><div class="modal-body" id="div_modalbody"><div class="mb-10"><p class="lbl_Otp">We have sent OTP on your Mobile Number and Email!</p></div><div class="floating-label-form-group mb-2"><input class="form-control" id ="txt_Otp" placeholder="Enter Mobile OTP/Email OTP" type="password" autocomplete="new-password"><span toggle="#txt_Otp" id="OtpHide" class="fa fa-eye-slash font-15 mr-10 field-icon"></span></div></div><div class="modal-footer mb-2" style="display:block"><button type = "button" class="btn btn-primary pull-left" id="btn_ResendOtp">Resend</button><button type = "button" class="btn btn-primary pull-right" id="btn_VerifyOtp">Verify</button></div></div></div></div></div>`;
  41. return html;
  42. }
  43. load(id, containerid, callback) {
  44. return __awaiter(this, void 0, void 0, function* () {
  45. this._accountManager = yield Unibase.Platform.Membership.Managers.AccountManager.Instance();
  46. yield this.loadTenants(callback);
  47. jQuery(".preloader-it").delay(500).fadeOut("slow");
  48. jQuery("#external-container").delay(500).fadeIn("slow");
  49. jQuery("#bizgaze_body").css("background-color", "#f4f6f7");
  50. $("#div_modalbody").removeAttr("style");
  51. $(".pr-password").click(function () {
  52. var signUpPswd = $(".pr-password");
  53. signUpPswd.passwordRequirements({
  54. numCharacters: 8,
  55. useLowercase: true,
  56. useUppercase: true,
  57. useNumbers: true,
  58. useSpecial: true
  59. });
  60. });
  61. $("#passwordHide").click(function () {
  62. var input = $('#txt_NewPswd');
  63. input.attr('type') == "password" ? input.attr('type', 'text') : input.attr('type', 'password');
  64. $("#passwordHide").toggleClass('fa-eye-slash fa-eye');
  65. });
  66. $("#confirmPasswordHide").click(function () {
  67. var input = $('#txt_ConfirmPswd');
  68. input.attr('type') == "password" ? input.attr('type', 'text') : input.attr('type', 'password');
  69. $('#confirmPasswordHide').toggleClass('fa-eye-slash fa-eye');
  70. });
  71. $("#OtpHide").click(function () {
  72. var input = $('#txt_Otp');
  73. input.attr('type') == "password" ? input.attr('type', 'text') : input.attr('type', 'password');
  74. $('#OtpHide').toggleClass('fa-eye-slash fa-eye');
  75. });
  76. $("#txt_EmailorPhone").keypress(function (e) {
  77. if (e.which == 13)
  78. document.getElementById("btn_SendOtp").click();
  79. });
  80. $("#txt_Otp").keypress(function (e) {
  81. if (e.which == 13)
  82. document.getElementById("btn_VerifyOtp").click();
  83. });
  84. $("#txt_NewPswd,#txt_ConfirmPswd").keypress(function (e) {
  85. if (e.which == 13)
  86. document.getElementById("btn_CreatePswd").click();
  87. });
  88. var instance = this;
  89. $("#btn_SendOtp").click(function () {
  90. instance.validate();
  91. });
  92. $("#btn_CreatePswd").click(function () {
  93. instance.createPassword();
  94. });
  95. $("#btn_VerifyOtp").click(function () {
  96. instance.verifyOtp();
  97. });
  98. $("#btn_ResendOtp").click(function () {
  99. instance.sendOtp(instance.OtpId);
  100. });
  101. if (callback != null)
  102. callback();
  103. });
  104. }
  105. loadTenants(callback) {
  106. var instance = this;
  107. instance._accountManager.getTenants().then(function (response) {
  108. var res = response;
  109. let cmbLob = document.getElementById('ddl_Tenant');
  110. $('#ddl_Tenant').empty();
  111. $('#ddl_Tenant').append('<option value=0>Select Tenant</option>');
  112. for (var i = 0; i < response.result.length; i++) {
  113. var data = response.result[i];
  114. var opt = document.createElement("option");
  115. var Name = data.tenantName;
  116. var id = data.tenantId;
  117. opt.text = Name;
  118. opt.value = id;
  119. cmbLob.append(opt);
  120. }
  121. if (res.result.filter(x => x.isTemplateDb == false).length == 1) {
  122. var Id = $('#ddl_Tenant option[value=' + res.result.filter(x => x.isTemplateDb == false)[0].tenantId + ']');
  123. Id.attr("selected", true);
  124. $("#ddl_Tenant").prop('disabled', true);
  125. }
  126. if (callback != null) {
  127. callback();
  128. }
  129. });
  130. }
  131. validate() {
  132. $(".lbl_Otp").text("");
  133. $("#txt_Otp").val('');
  134. $("#div_ValidationSummary").empty();
  135. var phoneOrEmail = $("#txt_EmailorPhone").val();
  136. var tenantId = $("#ddl_Tenant option:selected").val();
  137. if (phoneOrEmail == "" && tenantId == 0) {
  138. MessageHelper.Instance().showError("Please enter Email/Phone and select a Tenant !", "div_ValidationSummary");
  139. return false;
  140. }
  141. if (phoneOrEmail == "") {
  142. MessageHelper.Instance().showError("Email or Phone cannot be Empty!", "div_ValidationSummary");
  143. return false;
  144. }
  145. if (tenantId == 0) {
  146. MessageHelper.Instance().showError("Please select a Tenant", "div_ValidationSummary");
  147. return false;
  148. }
  149. else {
  150. var instance = this;
  151. instance._accountManager.getContact(phoneOrEmail, tenantId).then(function (response) {
  152. if (response.result != null) {
  153. instance.Email = response.result.emailAddress;
  154. instance.ContactNumber = response.result.phoneNumber;
  155. instance.UserName = response.result.unibaseId;
  156. instance.TenantId = response.result.tenantId;
  157. instance.ContactName = response.result.userName;
  158. $(".lbl_Otp").removeClass('text-danger text-success').text("We have sent OTP on your Mobile Number and Email !");
  159. $("#txt_Otp").val('');
  160. $("#div_ValidationSummary").empty();
  161. instance.sendOtp(0);
  162. }
  163. else {
  164. MessageHelper.Instance().showError(response.message, "div_ValidationSummary");
  165. }
  166. });
  167. }
  168. }
  169. sendOtp(IsResend) {
  170. var instance = this;
  171. $(".preloader-it").fadeIn();
  172. var postData = {
  173. ContactOrEmail: $("#txt_EmailorPhone").val(),
  174. FirstName: instance.ContactName,
  175. LastName: "",
  176. ContactNumber: "",
  177. Email: "",
  178. TenantName: "",
  179. IsSignup: false,
  180. IsForgotPswd: false,
  181. IsRegisterUser: true,
  182. UnibaseId: instance.UserName,
  183. OtpId: IsResend,
  184. UserOtp: ""
  185. };
  186. instance._accountManager.sendOtp(postData).then(function (response) {
  187. if (IsResend != 0) {
  188. $(".lbl_Otp").text("OTP has been Resent!").removeClass('text-danger', '').addClass('text-success', '');
  189. }
  190. if (response == 0) {
  191. $(".preloader-it").delay(200).fadeOut("slow");
  192. MessageHelper.Instance().showError("Some Error has occurred!", 'div_ValidationSummary');
  193. }
  194. else {
  195. instance.OtpId = response;
  196. $("#modal_Otp").modal("show");
  197. $(".preloader-it").delay(200).fadeOut("slow");
  198. }
  199. }, function () {
  200. $(".preloader-it").delay(200).fadeOut("slow");
  201. MessageHelper.Instance().showError("Some Error has occurred!", 'div_ValidationSummary');
  202. });
  203. }
  204. verifyOtp() {
  205. var instance = this;
  206. if ($("#txt_Otp").val() == "")
  207. $(".lbl_Otp").text("Please Enter OTP!").addClass('text-danger', '');
  208. else {
  209. var postData = {
  210. FirstName: "",
  211. LastName: "",
  212. ContactNumber: "",
  213. Email: "",
  214. TenantName: "",
  215. ContactOrEmail: "",
  216. IsForgotPswd: false,
  217. IsRegisterUser: false,
  218. IsSignup: true,
  219. UnibaseId: "",
  220. OtpId: instance.OtpId,
  221. UserOtp: $("#txt_Otp").val(),
  222. };
  223. instance._accountManager.verifyOtp(postData).then(function (response) {
  224. if (response.code.toString() == "2") {
  225. $(".preloader-it").delay(200).fadeOut("slow");
  226. $(".lbl_Otp").text("Otp Expired, Please click on Resend to get new OTP").addClass('text-danger', '');
  227. $("#txt_Otp").val('');
  228. }
  229. else if (response.result != null) {
  230. if (response.result.contactConfirmed == false && response.result.emailConfirmed == false) {
  231. $(".preloader-it").delay(200).fadeOut("slow");
  232. $(".lbl_Otp").text("Invalid OTP!").addClass('text-danger', '');
  233. $("#txt_Otp").text('');
  234. }
  235. else {
  236. $(".preloader-it").fadeIn();
  237. $("#div_RegisterUser").addClass('d-none');
  238. $("#modal_Otp").modal("hide");
  239. $(".preloader-it").delay(200).fadeOut("slow");
  240. $("#lbl_Email").text($("#txt_EmailorPhone").val());
  241. $("#div_CreatePswd").removeClass('d-none');
  242. }
  243. }
  244. });
  245. }
  246. }
  247. createPassword() {
  248. var instance = this;
  249. $("#div_ValidationSummary").empty();
  250. var confirmPassword = $("#txt_ConfirmPswd").val();
  251. var password = $("#txt_NewPswd").val();
  252. if (password.length == 0 || confirmPassword.length == 0) {
  253. MessageHelper.Instance().showError("Password fields cannot be empty!", 'div_ValidationSummary');
  254. return false;
  255. }
  256. if (password.length < 8 || confirmPassword.length < 8) {
  257. MessageHelper.Instance().showError("Password must be atleast 8 characters!", 'div_ValidationSummary');
  258. return false;
  259. }
  260. if (password != confirmPassword) {
  261. MessageHelper.Instance().showError("New and Confirm Passwords doesn't match!", "div_ValidationSummary");
  262. return false;
  263. }
  264. var password = password;
  265. var decimal = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,15}$/;
  266. var checkpassword = password.match(decimal) ? true : false;
  267. if (checkpassword == false) {
  268. $(".pr-password").focus();
  269. MessageHelper.Instance().showError("Please Match the Password in requested Format", "div_ValidationSummary");
  270. return false;
  271. }
  272. var postData = {
  273. Password: $("#txt_NewPswd").val(),
  274. UserName: instance.UserName,
  275. Email: instance.Email,
  276. ContactNumber: instance.ContactNumber,
  277. TenantId: instance.TenantId,
  278. };
  279. instance._accountManager.registerUser(postData).then(function (response) {
  280. if (response.errors == null) {
  281. $("#div_CreatePswd").addClass('d-none');
  282. $("#div_SuccessMsg").removeClass('d-none');
  283. MessageHelper.Instance().showSuccess("Password Created Successfully", 'div_ValidationSummary');
  284. }
  285. else {
  286. $(".preloader-it").delay(200).fadeOut("slow");
  287. MessageHelper.Instance().showError(response.errors[0], "div_ValidationSummary");
  288. }
  289. });
  290. }
  291. submit() {
  292. }
  293. static Instance() {
  294. return new HomeAffairsRegisterUser();
  295. }
  296. }
  297. Components.HomeAffairsRegisterUser = HomeAffairsRegisterUser;
  298. })(Components = Compact.Components || (Compact.Components = {}));
  299. })(Compact = Themes.Compact || (Themes.Compact = {}));
  300. })(Themes = Unibase.Themes || (Unibase.Themes = {}));
  301. })(Unibase || (Unibase = {}));