Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

createcontact.js 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. var Unibase;
  2. (function (Unibase) {
  3. let Themes;
  4. (function (Themes) {
  5. let Compact;
  6. (function (Compact) {
  7. let Components;
  8. (function (Components) {
  9. class CreateContact extends Unibase.Platform.Core.BaseComponent {
  10. jsFiles() {
  11. return ["tenants/themes/compact/index.anonymous.js", "platform/membership/managers/accountmanager.js", "platform/tag/managers/tagmanager.js", "platform/core/helpers/autocomplete/autocompletehelper.js", "libs/select2/js/select2.min.js", "libs/passwordrequirement/passwordrequirement.js"];
  12. }
  13. cssFiles() {
  14. return ["libs/passwordrequirement/passwordrequirement.css"];
  15. }
  16. html(id, containerid) {
  17. if (jQuery("#external-form").length === 0) {
  18. var index = new Components.Index_Anonymous();
  19. index.init(null);
  20. }
  21. const html = `<div><form id="frm_Signup" default="" data-validate="parsley" data-isdynamic="false" style=""><h1 class="display-4 mb-10 ml-10 mr-10">Sign up for free</h1><p class="mb-30 ml-10 mr-10">
  22. Create your account and start your free trial today</p><div class="" id="UserInfo" style=""><div id="div_ValidationSummary" class="clear ml-20 mr-20"></div>
  23. <div class="form-row"><div class="col-md-12 form-group"><input class="form-control required" id="txt_registerfirmname" placeholder="Firm name" value="" type="text" required="">
  24. </div><div class="col-md-6 form-group"><input class="form-control required" id="txt_registercontactname" placeholder="First name" value="" type="text" required="">
  25. </div><div class="form-group floating-label-form-group floating-label-form-group-with-value focus col-sm-6" id="div_tagsauto">
  26. <select id="ddl_Tags" class="form-control value-control" data-isdynamic="false"><option value="0">Im A</option><option value="100021580000007">Retailers</option><option value="100021580000275">Retailer</option><option value="100021580000276">RFW</option><option value="100021580000277">EOW</option><option value="100021580000278">EBW</option><option value="100021580000279">HRW</option></select></div>
  27. </div><div class="form-group floating-label-form-group floating-label-form-group-with-value focus hidden" id="div_TenantsAutoComplete">
  28. <select id="ddl_Tenant" class="form-control value-control" data-isdynamic="false" disabled=""><option value="0">Select Tenant</option><option value="2" selected="selected">Shriram Pistons &amp; Rings Limited</option><option value="1">templatetenant</option></select></div>
  29. <div class="row">
  30. <div class="form-group col-6"><input class="form-control required" minlength="10" maxlength="10" id="txt_registercontactnumber" placeholder="Mobile" type="textbox" required=""></div><div class="form-group col-6"><input class="form-control required" id="txt_registercontactmail" placeholder="Email" type="text" required="">
  31. </div></div><div class="form-row hidden"><div class="col-md-6 form-group"><input class="form-control required" id="txt_TenantName" placeholder="Tenant Name" type="text" required=""></div><div class=" col-md-6 form-group " id="div_Industry"><select id="ddl_Industry" class="form-control value-control required" data-isdynamic="false"></select>
  32. </div></div><div id="passwordbox" class="row"><div class="form-group mb-20 col-6"><input class="form-control pr-password" id="confirmpass" placeholder="Password" type="password" autocomplete="new-password" aria-autocomplete="list"><span toggle="#InputPassword" id="PasswordHide"><i class="fa fa-eye-slash font-15 mr-10 field-icon" id="Password_eye"></i></span><div class="showpwsdreq"></div></div><div class="form-group mb-20 col-6"><input class="form-control pr-password" id="contacttPassword" placeholder="Confirm Password" type="password" autocomplete="new-password"><span toggle="#InputPassword" id="cfmPasswordHide"><i class="fa fa-eye-slash font-15 mr-10 field-icon" id="Password_eye"></i></span></div></div></div><div class="custom-control custom-checkbox mb-25 ml-10 mr-10 hidden"><input class="custom-control-input" id="chk_ReadTerms" type="checkbox"><label class="custom-control-label font-14" for="chk_ReadTerms">I have read and agree to the <a href=""><u>term and conditions</u></a></label>
  33. </div><div class="ml-10 mr-10 mb-25 text-center"><a class="btn btn-primary btn-block text-white hidden" id="btn_nextt">Next</a></div><div class="ml-10 mr-10 mb-25 text-center"><a class="btn btn-primary btn-block text-white" id="btn_registercontact">Register</a><div class="option-sep">or</div><p class="text-center">Already have an account?<a href="index.html#/login">Sign In</a></p></div></form><div id="modal_Otp" class="modal fade hide"><div class="modal-dialog">
  34. <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="close pull-right" data-dismiss="modal" aria-hidden="true">×</button></div><div class="modal-body" id="div_modalbody" style="height: 607px; overflow: hidden auto;"><div class="mb-10">
  35. <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="text"></div></div><div class="modal-footer mb-2" style="display:block">
  36. <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>`;
  37. return html;
  38. }
  39. loadlobdata(containerid, datass, data) {
  40. var response = data.result.taggroups;
  41. var html = '<div class="section_LoBTags card Section"><div class="card-header">LoB Tags</div><div id="divLobWiseTags" class="card-body form-group floating-label focus divtags mb-30" data-lobtagindex="1"><ul id="ulLobTags" class="list-group"><input type="hidden" id="hf_LobContactIds" value="">';
  42. for (var i = 0; i < response.length; i++) {
  43. var data = response[i];
  44. html +=
  45. '<li class="list-group-item" id="liLobTags_' + data.tagGroupId + '"><div class="lobtag"><a href="#" onclick="javascript:return Unibase.Themes.Compact.Components.CreateContact.Instance().tags(' + false + ',' + data.tagGroupId + ',\'' + data.groupName + '\',null,' + data.tagCategoryId + ')"; id="spn_Lobs_' + data.tagGroupId + '" class="spn_Lobs_' + data.tagGroupId + ' pl-20" style="text-decoration:underline;color:deepskyblue">' + data.groupName + '</a><input type="checkbox" name="lobs[]" value="' + data.tagGroupId + '" id="chkContactLob_' + data.tagGroupId + '" class="pull-right chkbx" onclick="_bizgaze_control_AutomationLobTags.selectedtags(' + data.tagGroupId + ')" title="Applied for All Included Tags">' +
  46. '<input type = "hidden" id = "hdn_customcontrol" class="value-control" value = "Unibase.Forms.Controls.AutomationLobTagControl.Instance().loaddata(\'' + containerid + '\');"' +
  47. '<div class="hidden lobtags_' + data.tagGroupId + ' row col-sm-12">' +
  48. '<div class="div_IncludedTags col-sm-12" id="div_IncludedTags_' + data.tagGroupId + '">' +
  49. '<div class="divTagSelectorContainer_' + data.tagGroupId + '"></div></div>' +
  50. '<div class="div_ExcludedTags col-sm-6" id="div_ExcludedTags_' + data.tagGroupId + '">' +
  51. '<div class="divTagSelectorContaine_' + data.tagGroupId + '"></div>' +
  52. '</div></div></li>';
  53. }
  54. html += '</div></ul></div>';
  55. return html;
  56. }
  57. tags(tags, LobId, LobName, res, categoryid) {
  58. var instance = this;
  59. instance.Includetags('div_IncludedTags_' + LobId, LobId, LobName, categoryid, null, res);
  60. }
  61. Includetags(containerid, LobId, LobName, categoryid, includetagids, tag) {
  62. var res1 = tag;
  63. var incltag = tag;
  64. var instance = this;
  65. var html = "<div class='row'>";
  66. html += '<div class="col-sm-12"><div class="lobtag">' +
  67. '<label>' + 'Included Tags' + '</label>' +
  68. '<select style="width:100%" id="txtBizgazeNotifications_Tags_' + LobId + '" class="txtBizgazeNotifications_Tags_' + LobId + ' no-border form-control includedtag"></select>' +
  69. '<input type="hidden" class="hfBizgazeNotifications_Tags_' + LobId + '" value="' + LobName + '" />' +
  70. '<input type="hidden" class="hfTags_LobName" value="' + LobName + '" />' +
  71. '<input type="hidden" class="hfTags_LobId" value="' + LobId + '" />' +
  72. '<input type="hidden" class="hfTags_CategoryId" value="' + categoryid + '" />' +
  73. '</div></div>';
  74. html += '</div>';
  75. $("#" + containerid).find(".divTagSelectorContainer_" + LobId).html(html);
  76. $("#" + containerid).find(".lobtag").each(function () {
  77. var element = $(this);
  78. if (incltag == null) {
  79. instance.refreshincludeTags(element, categoryid, incltag, LobId);
  80. }
  81. });
  82. }
  83. ;
  84. refreshincludeTags(element, categoryid, incltag, LobId) {
  85. var includetags = [];
  86. var Ids = [];
  87. if (incltag == undefined) {
  88. incltag = [];
  89. }
  90. for (var i = 0; i < incltag.length; i++) {
  91. var tag = incltag[i];
  92. if (tag.LobId == LobId) {
  93. includetags.push({ id: tag.TagId, text: tag.TagName });
  94. Ids.push(tag.TagId);
  95. }
  96. }
  97. var selectedtags = [];
  98. var multitags = $("#liLobTags_" + LobId).find(".lobtag").find(".lobtags_" + LobId).find(".lobtag").find("#txtBizgazeNotifications_Tag_" + LobId);
  99. for (i = 0; i < multitags.length; i++) {
  100. var inctags = $("#txtBizgazeNotifications_Tags_" + LobId).val();
  101. var exctags = $("#txtBizgazeNotifications_Tag_" + LobId).val();
  102. selectedtags += inctags + ',' + exctags + ',';
  103. }
  104. selectedtags = undefined;
  105. Unibase.Platform.Membership.Managers.AccountManager.Instance().childlobs(LobId, Number($("#ddl_Tenant").val())).then(function (response) {
  106. var controlData = [];
  107. for (let i = 0; i < response.result.length; i++) {
  108. var controls = response.result[i];
  109. controlData.push({ id: controls.value, text: controls.selectText });
  110. }
  111. $(".txtBizgazeNotifications_Tags_" + LobId).select2({
  112. placeholder: 'Select Control',
  113. data: controlData,
  114. });
  115. });
  116. }
  117. ;
  118. loaddata(containerid) {
  119. var array = [];
  120. var checkboxes = document.getElementsByName('lobs[]');
  121. var vals = "";
  122. for (var i = 0, n = checkboxes.length; i < n; i++) {
  123. if (checkboxes[i].checked) {
  124. vals += "|" + checkboxes[i].value + '|';
  125. }
  126. }
  127. if (vals)
  128. vals = vals.substring(1);
  129. var tags = new Array();
  130. var selcteddata = "";
  131. var excludedata = "";
  132. $(".div_IncludedTags").find(".lobtag").each(function () {
  133. var element = $(this);
  134. var data = element.find('.includedtag').select2("data");
  135. for (var i = 0; i < data.length; i++) {
  136. selcteddata = selcteddata + data[i].id + '|';
  137. tags.push({ TagId: data[i].id });
  138. }
  139. });
  140. array.push({ "lobtags": vals, "includedtags": selcteddata, "excludedata": excludedata });
  141. return array;
  142. }
  143. load(id, containerid, callback) {
  144. $(".pr-password").click(function () {
  145. var signUpPswd = $(".pr-password");
  146. signUpPswd.passwordRequirements({
  147. numCharacters: 8,
  148. useLowercase: true,
  149. useUppercase: true,
  150. useNumbers: true,
  151. useSpecial: true
  152. });
  153. });
  154. $("#passwordbox").removeClass('hidden');
  155. $("#btn_nextt").addClass('hidden');
  156. $("#btn_registercontact").removeClass('hidden');
  157. var instance = this;
  158. $('#PasswordHide').click(function () {
  159. var input = $('#confirmpass');
  160. input.attr('type') == "password" ? input.attr('type', 'text') : input.attr('type', 'password');
  161. $('#Password_eye').toggleClass('fa-eye-slash fa-eye');
  162. });
  163. $('#cfmPasswordHide').click(function () {
  164. var input = $('#contacttPassword');
  165. input.attr('type') == "password" ? input.attr('type', 'text') : input.attr('type', 'password');
  166. $('#Password_eye').toggleClass('fa-eye-slash fa-eye');
  167. });
  168. $("#ddl_Tenant").change(function () {
  169. Unibase.Platform.Membership.Managers.AccountManager.Instance().getchildtags(Number($("#ddl_Tenant").val())).then(function (response) {
  170. $("#ddl_Tags").empty();
  171. let cmbLob = document.getElementById('ddl_Tags');
  172. $("#ddl_Tags").append('<option value=0>Im A</option>');
  173. for (var i = 0; i < response.result.length; i++) {
  174. var data = response.result[i];
  175. var opt = document.createElement("option");
  176. var Name = data.tagName;
  177. var id = data.tagId;
  178. opt.text = Name;
  179. opt.value = id;
  180. cmbLob.append(opt);
  181. }
  182. });
  183. });
  184. $("#txt_registercontactnumber").keypress(function (e) {
  185. if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
  186. MessageHelper.Instance().showError("Numbers only allowed", "div_ValidationSummary");
  187. return false;
  188. }
  189. });
  190. $("#btn_nextt").click(function () {
  191. $("#UserInfo").addClass("hidden");
  192. $("#passwordbox").removeClass('hidden');
  193. $("#divLobWiseTags").addClass('hidden');
  194. $("#btn_registercontact").removeClass('hidden');
  195. $("#btn_nextt").addClass('hidden');
  196. $(".section_LoBTags").addClass('hidden');
  197. });
  198. $("#btn_registercontact").click(function () {
  199. var number = $("#txt_registercontactnumber").val();
  200. if ($("#txt_registercontactname").val() == "") {
  201. MessageHelper.Instance().showError("Please Enter Name", "div_ValidationSummary");
  202. return false;
  203. }
  204. if ($("#txt_registerfirmname").val() == "") {
  205. MessageHelper.Instance().showError("Please Enter Firm Name", "div_ValidationSummary");
  206. return false;
  207. }
  208. if ($("#txt_registercontactnumber").val() == "") {
  209. MessageHelper.Instance().showError("Please Enter Phone Number", "div_ValidationSummary");
  210. return false;
  211. }
  212. if (number.length < 10) {
  213. MessageHelper.Instance().showError("Please Check Your Number", "div_ValidationSummary");
  214. return false;
  215. }
  216. if ($("#ddl_Tags").val() == "0") {
  217. MessageHelper.Instance().showError("Please Select Tag", "div_ValidationSummary");
  218. return false;
  219. }
  220. if ($("#txt_registercontactmail").val() != "") {
  221. var test = /^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+(com|COM|in|IN)+$/;
  222. var value = $("#txt_registercontactmail").val();
  223. if (!value.match(test)) {
  224. MessageHelper.Instance().showError("Please Enter Valid Email", "div_ValidationSummary");
  225. return false;
  226. }
  227. }
  228. var includes = $("#ddl_Tags").val();
  229. ;
  230. if ($("#confirmpass").val() == "") {
  231. MessageHelper.Instance().showError("Please Enter PassWord", "div_ValidationSummary");
  232. return false;
  233. }
  234. var number1 = Number($("#txt_registercontactnumber").val());
  235. var contactname = $("#txt_registercontactname").val();
  236. var firmname = $("#txt_registerfirmname").val();
  237. var contactmail = $("#txt_registercontactmail").val();
  238. var passwords = $("#confirmpass").val();
  239. var decimal = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,15}$/;
  240. var checkpassword = passwords.match(decimal) ? true : false;
  241. if (checkpassword == false) {
  242. $(".pr-password").focus();
  243. MessageHelper.Instance().showError("Please Match the Password in requested Format", "div_ValidationSummary");
  244. return false;
  245. }
  246. if (($("#contacttPassword").val()) == "") {
  247. MessageHelper.Instance().showError("Please Enter Confirm Password", "div_ValidationSummary");
  248. return false;
  249. }
  250. let checklength = $("#confirmpass").val();
  251. if (checklength.length < 8) {
  252. MessageHelper.Instance().showError("Your password length is " + checklength.length + ", Password must be atleast minimum 8 characters!", 'div_ValidationSummary');
  253. return false;
  254. }
  255. if ($("#confirmpass").val() != $("#contacttPassword").val()) {
  256. MessageHelper.Instance().showError("Password and Confirm Password Does Not Match", "div_ValidationSummary");
  257. return null;
  258. }
  259. else {
  260. var password = $("#contacttPassword").val();
  261. if (contactmail == "") {
  262. contactmail = null;
  263. }
  264. $("#btn_registercontact").addClass("disabled");
  265. Unibase.Platform.Membership.Managers.AccountManager.Instance().registercontact(contactname, number1, contactmail, includes, Number($("#ddl_Tenant").val()), password, firmname).then(function (response) {
  266. $("#btn_registercontact").removeClass("disabled");
  267. var res = response;
  268. if (res.code == "3") {
  269. MessageHelper.Instance().showError(response.message, "div_ValidationSummary");
  270. }
  271. else {
  272. window.location.href = '#/login';
  273. }
  274. });
  275. }
  276. });
  277. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/membership/managers/accountmanager.js", function () {
  278. Unibase.Platform.Membership.Managers.AccountManager.Instance().getTenants().then(function (response) {
  279. var res = response;
  280. let cmbLob = document.getElementById('ddl_Tenant');
  281. $('#ddl_Tenant').empty();
  282. $('#ddl_Tenant').append('<option value=0>Select Tenant</option>');
  283. for (var i = 0; i < response.result.length; i++) {
  284. var data = response.result[i];
  285. var opt = document.createElement("option");
  286. var Name = data.tenantName;
  287. var id = data.tenantId;
  288. opt.text = Name;
  289. opt.value = id;
  290. cmbLob.append(opt);
  291. }
  292. if (res.result.filter(x => x.isTemplateDb == false).length == 1) {
  293. var id = $('#ddl_Tenant option[value=' + res.result.filter(x => x.isTemplateDb == false)[0].tenantId + ']');
  294. id.attr("selected", true);
  295. $("#ddl_Tenant").prop("disabled", true);
  296. $("#ddl_Tenant").change();
  297. }
  298. });
  299. });
  300. }
  301. loadIndustries() {
  302. }
  303. validate() {
  304. }
  305. sendOtp(isResend) {
  306. }
  307. verifyOtp() {
  308. }
  309. saveSignUp(ContactConfirmed, EmailConfirmed) {
  310. }
  311. static Instance() {
  312. return new CreateContact();
  313. }
  314. }
  315. Components.CreateContact = CreateContact;
  316. })(Components = Compact.Components || (Compact.Components = {}));
  317. })(Compact = Themes.Compact || (Themes.Compact = {}));
  318. })(Themes = Unibase.Themes || (Unibase.Themes = {}));
  319. })(Unibase || (Unibase = {}));