Built files from Bizgaze WebServer
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

registeremail.component.js 46KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Transact;
  6. (function (Transact) {
  7. let Controls;
  8. (function (Controls) {
  9. let Subscriptions;
  10. (function (Subscriptions) {
  11. class RegisterEmail extends Unibase.Platform.Core.BaseComponent {
  12. init(formpropertyid, prop, callback) {
  13. this.fileCacheHelper.loadCssFiles(['libs/owl.carousel/assets/owl.carousel.min.css', 'libs/simplebar/simplebar.min.css', 'apps/transact/controls/subscriptions/style.subscription.css'], null);
  14. $(".planSelectRadio").click(function () {
  15. });
  16. $(".login-btn").click(function () {
  17. var url = _appsettings.server_url() + '/#/login';
  18. window.open(url, "_blank");
  19. });
  20. }
  21. loadControl(containerid, prop) {
  22. var html = `<div class="pricing-details-wrap subs-bg-pattern"><div id="pricingFormErrMsg" class="princing-form-err-msg"></div><div class="plan-details-bg-img-wrap"><img src="./imgs/plan-detail-top-left.png" class="plan-detail-top-left-img"><img src="./imgs/plan-detail-top-right-1.png" class="plan-detail-top-right-1-img"><img src="./imgs/plan-detail-top-right-2.png" class="plan-detail-top-right-2-img"><img src="./imgs/plan-detail-left-bottom.png" class="plan-detail-left-bottom-img"><img src="./imgs/plan-detail-bottom-right.png" class="plan-detail-bottom-right-img"></div>
  23. <div class="pricing-details-header-wrap py-15 px-15 pl-lg-130 px-xl-150 pr-lg-100">
  24. <div class="logo-wrap">
  25. <img src="./imgs/biz-logo.svg" class="img-fluid biz-logo h-50p" alt="logo">
  26. </div>
  27. <h5 class="pricing-body-heading text-dark-100 mt-20 font-weight-bold">Pricing Details</h5>
  28. </div>
  29. <div data-simplebar class="pricing-details-body-wrap simple-scroll-bar px-15 pb-15 pb-md-20">
  30. <div class="row mx-0 List_cartItems">
  31. <div class="col-12 px-0 pricing-detail-col plan-details-wrap">
  32. <h6 class="form-heading heading-underline ml-lg-120 ml-xl-135 mb-md-20">Select Plan</h6>
  33. <div class="plans-carousel-wrap biz-custom-scrollbar px-xl-100 px-lg-80 px-md-50">
  34. <div class="owl-carousel owl-theme biz-plans-carousel listitems" id="biz-plans-carousel">
  35. </div>
  36. </div>
  37. </div>
  38. </div>
  39. </div>`;
  40. $("#" + containerid).html(html);
  41. }
  42. planItemsList() {
  43. var SubscriptionItemType = 1;
  44. this.fileCacheHelper.loadJsFiles(['apps/transact/managers/subscriptions/subscriptionmanager.js', 'apps/transact/components/subscriptions/userregistration.component.js'], function () {
  45. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getItemsList(Number(SubscriptionItemType)).then(function (response) {
  46. var res = response.result;
  47. for (var i = 0; i < res.length; i++) {
  48. let html = `<div class="item card plan-card-item CartItems" id="planCard_${res[i].ItemId}">
  49. <div class="card-header">`;
  50. html += ` <h5 class="plan-title text-truncate">${res[i].ItemName}</h5>`;
  51. html += `</div>
  52. <div class="card-body px-10 py-0">
  53. <div class="dropdown plan-price-wrap">
  54. <h6 class="plan-price inr-sign mr-1">${res[i].SalesPrice}</h6><span class="text-dark-100">/</span>
  55. <a href="javascript:;" data-toggle="dropdown"
  56. class="plans-dp-link dropdown-toggle ml-1"></a>
  57. <div role="menu" class="dropdown-menu TenureDropdown_${res[i].ItemId}">`;
  58. html += ` </div>
  59. </div>
  60. <ul class="plan-list-group biz-custom-scrollbar PlanList_${res[i].ItemId}">`;
  61. html += ` <input type="hidden" id="hf_Sku" value=` + res[i].SKU + ` /><input type="hidden" id="hf_CartItemId" value=` + res[i].ItemId + ` /><input type="hidden" id="hf_Quantity" value=1 /><input type="hidden" class="itemprice" value=` + res[i].SalesPrice + ` id="hf_itemprice" /><input type="hidden" class="price hf_itemprice" value=` + res[i].SalesPrice + ` id="hf_price" /><input type="hidden" class="hf_discountPercent" value=0 id="hf_discountPercent" /><input type="hidden" class="hf_dropitemtenure_${res[i].ItemId}" value=0 id="hf_dropitemtenure_${res[i].ItemId}" />
  62. </ul>
  63. <div class="card-footer d-flex justify-content-between align-items-center">
  64. <div>
  65. <a class="btn btn-sm btn-outline-dark plan-subscribe-btn addonchk planSelectBox_${res[i].ItemId}" href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().userRegistration(\'${res[i].ItemId}\')">Subscribe</a>
  66. </div>
  67. <div>
  68. <button class="btn btn-sm btn-outline-dark plan-subscribe-btn addonchk planSelectBox_${res[i].ItemId}" id="Sub_try_now" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().TryUser();">Try Now</button>
  69. </div>
  70. </div>
  71. </div>
  72. <img src="./imgs/plan-item-bg.png" class="plan-item-bg-img img-fluid">
  73. </div>`;
  74. $("#biz-plans-carousel").append(html);
  75. }
  76. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().loadCustomUiJs();
  77. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().initiatePlansCarousel();
  78. $(".planSelectBox_" + res[0].ItemId).addClass('checked');
  79. for (var i = 0; i < res.length; i++) {
  80. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().getBoMItems(res[i].ItemId);
  81. }
  82. for (var i = 0; i < res.length; i++) {
  83. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().getTenures(res[i].ItemId);
  84. }
  85. });
  86. });
  87. }
  88. OpenModal() {
  89. const html = `<div class="modal fade open-try-modal" id="Opentrynowmodal" style="width: auto;background-color: rgba(0, 0, 0, 0.5) !important;">
  90. <div class="modal-dialog modal-dialog-centered" role="document">
  91. <div class="modal-content p-4">
  92. <div class="modal-body">
  93. <div class="otp-err-msg" id="trynowotpErrMsg"></div>
  94. <div class="form-heading-col pt-10"><h5 class="form-heading heading-underline">Try Now</h5></div>
  95. <div class="otp-header hidden"><p>Enter 6 Digit Verification Code sent</p></div>
  96. <div class="trynow_contact pt-3">
  97. <input type="text" class="form-control trynow_register" Placeholder="Enter Email / Contact Number">
  98. <div class="otp-input-group hidden">
  99. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(1);" maxlength=1>
  100. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(2);" maxlength=1>
  101. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(3);" maxlength=1>
  102. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(4);" maxlength=1>
  103. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(5);" maxlength=1>
  104. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(6);" maxlength=1>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="text-right close_trynow mt-30">
  109. <a href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().sendOtp();" class="otp-trynowresend-link hidden">Resend Code</a>
  110. <a href="javascript:;" class="btn subs-btn-outline-primary trynow-submit-btn" id="trynow_submit">Submit</a>
  111. <a href="javascript:;" class="btn subs-btn-outline-primary trynow-otp-submit-btn hidden" id="trynow_otpSubmitBtn" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().tryNowSubmitHandler();">Proceed</a>
  112. </div>
  113. <a href="javascript:;" class="modal-close-btn btn btn-icon btn-flush-danger btn-rounded flush-soft-hover w-30p h-30p" id="otpModalCloseBtn" style="position:absolute;right:10px;top:5px;"><span class="btn-icon-wrap"><i class="las la-times"></i></span></a>
  114. </div>
  115. </div>
  116. </div>
  117. </div>`;
  118. const containerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  119. $('.open-try-modal').remove();
  120. $(`#${containerId}`).append(html);
  121. const trynowotpModalEl = $('#Opentrynowmodal');
  122. $("#trynow_submit").click(function () {
  123. let input_val = $(".trynow_register").val().toString();
  124. function isNumeric(val) {
  125. return /^-?\d+$/.test(val);
  126. }
  127. let values = isNumeric(input_val);
  128. var email = input_val;
  129. var mailFormat = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})|([0-9]{10})+$/;
  130. if (email == "") {
  131. MessageHelper.Instance().showError('Please Enter a Eamil or Phone Number!', 'trynowotpErrMsg');
  132. }
  133. else if (!mailFormat.test(email)) {
  134. MessageHelper.Instance().showError('Vaild eamil or phone number must be!', 'trynowotpErrMsg');
  135. return false;
  136. }
  137. else {
  138. $("#trynowotpErrMsg").addClass("hidden");
  139. $(this).addClass("hidden");
  140. $("#Opentrynowmodal").find(".modal-body").addClass("p-3");
  141. $(".close_trynow").addClass("otp-modal-footer");
  142. $(".trynow_register").addClass("hidden");
  143. $(".trynow-otp-submit-btn").removeClass("hidden");
  144. $(".otp-trynowresend-link").removeClass("hidden");
  145. $(".otp-header").removeClass("hidden");
  146. $(".otp-input-group").removeClass("hidden");
  147. }
  148. });
  149. trynowotpModalEl.addClass('show d-block');
  150. $('.otp-input').first().focus();
  151. $('#otpModalCloseBtn').click(function () {
  152. trynowotpModalEl.removeClass('show d-block');
  153. });
  154. $('.otp-input-group .otp-input').on('input', function (e) {
  155. const inputEl = this;
  156. inputEl.value = inputEl.value.replace(/[^0-9]/g, '');
  157. });
  158. }
  159. trynow() {
  160. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().OpenModal();
  161. }
  162. tryNowSubmitHandler() {
  163. let enteredtrynowOtp = '';
  164. $("#Opentrynowmodal").find('.otp-input').each(function () {
  165. enteredtrynowOtp += $(this).val();
  166. });
  167. let otp = RegisterEmail.instance.registertoken;
  168. var token = '123456';
  169. if (token === enteredtrynowOtp) {
  170. $('#Opentrynowmodal').removeClass('show d-block');
  171. }
  172. else {
  173. MessageHelper.Instance().showError('Invalid OTP!', 'trynowotpErrMsg');
  174. }
  175. }
  176. planItemsListByorgId(orgid) {
  177. var SubscriptionItemType = 1;
  178. this.fileCacheHelper.loadJsFiles(['apps/transact/managers/subscriptions/subscriptionmanager.js', 'apps/transact/components/subscriptions/userregistration.component.js'], function () {
  179. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getItemsList(SubscriptionItemType).then(function (response) {
  180. var res = response.result;
  181. for (var i = 0; i < res.length; i++) {
  182. let html = `<div class="item card plan-card-item CartItems" id="planCard_${res[i].ItemId}">
  183. <div class="card-header">`;
  184. html += ` <h5 class="plan-title text-truncate">${res[i].ItemName}</h5>`;
  185. html += `</div>
  186. <div class="card-body px-10 py-0">
  187. <div class="dropdown plan-price-wrap">
  188. <h6 class="plan-price inr-sign mr-1">${res[i].SalesPrice}</h6><span class="text-dark-100">/</span>
  189. <a href="javascript:;" data-toggle="dropdown"
  190. class="plans-dp-link dropdown-toggle ml-1"></a>
  191. <div role="menu" class="dropdown-menu TenureDropdown_${res[i].ItemId}">`;
  192. html += ` </div>
  193. </div>
  194. <ul class="plan-list-group biz-custom-scrollbar PlanList_${res[i].ItemId}">`;
  195. html += ` <input type="hidden" id="hf_Sku" value=` + res[i].SKU + ` /><input type="hidden" id="hf_CartItemId" value=` + res[i].ItemId + ` /><input type="hidden" id="hf_Quantity" value=1 /><input type="hidden" class="itemprice" value=` + res[i].SalesPrice + ` id="hf_itemprice" /><input type="hidden" class="price hf_itemprice" value=` + res[i].SalesPrice + ` id="hf_price" /><input type="hidden" class="hf_discountPercent" value=0 id="hf_discountPercent" /><input type="hidden" class="hf_dropitemtenure_${res[i].ItemId}" value=0 id="hf_dropitemtenure_${res[i].ItemId}" />
  196. </ul>
  197. <div class="card-footer"><a class="btn btn-sm btn-outline-dark plan-subscribe-btn addonchk planSelectBox_${res[i].ItemId}" href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().UpgradePlan(\'${res[i].ItemId}\','${orgid}')">Subscribe</a></div>
  198. </div>
  199. <img src="./imgs/plan-item-bg.png" class="plan-item-bg-img img-fluid">
  200. </div>`;
  201. $("#biz-plans-carousel").append(html);
  202. }
  203. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().loadCustomUiJs();
  204. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().initiatePlansCarousel();
  205. $(".planSelectBox_" + res[0].ItemId).addClass('checked');
  206. for (var i = 0; i < res.length; i++) {
  207. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().getBoMItems(res[i].ItemId);
  208. }
  209. for (var i = 0; i < res.length; i++) {
  210. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().getTenures(res[i].ItemId);
  211. }
  212. });
  213. });
  214. }
  215. UpgradePlan(itemid, orgid) {
  216. var tenureid = $(`.hf_dropitemtenure_${itemid}`).val();
  217. Bizgaze.Apps.Transact.Components.Subscriptions.Userregistration.Instance().managePayments(orgid, itemid, tenureid, null);
  218. }
  219. userRegistration(itemid) {
  220. var tenureid = $(`.hf_dropitemtenure_${itemid}`).val();
  221. Bizgaze.Apps.Transact.Components.Subscriptions.Userregistration.Instance().openUserRegistration(itemid, tenureid);
  222. }
  223. getTenures(itemId) {
  224. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  225. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getTenures(itemId).then(function (response) {
  226. var tenures = response.result;
  227. if (tenures.length != 0) {
  228. for (var i = 0; i < tenures.length; i++) {
  229. var tenure = "";
  230. var price = tenures[i].Price;
  231. if (tenures[i].Tenure == 1) {
  232. tenure = "Daily";
  233. }
  234. else if (tenures[i].Tenure == 2) {
  235. tenure = "Monthly";
  236. }
  237. else if (tenures[i].Tenure == 3) {
  238. tenure = "Yearly";
  239. }
  240. var html = `<a class="dropdown-item tenure-item dropitemtenure_${itemId}_${tenures[i].Tenure}" href="javascript:;" data-price="${price}">${tenure}</a>`;
  241. $(`.TenureDropdown_` + itemId + `:first`).append(html);
  242. if (i == 0) {
  243. $(`#planCard_${itemId}`).find('.plans-dp-link').text(tenure);
  244. $(`#planCard_${itemId}`).find('.plan-price').text(price);
  245. $(`.hf_dropitemtenure_${itemId}`).val(tenures[0].Tenure);
  246. }
  247. }
  248. $('.tenure-item').click(function () {
  249. const parentEl = $(this).parents('.plan-card-item');
  250. if ($(this).text() == 'Monthly') {
  251. parentEl.find('.plans-dp-link').text('Monthly');
  252. $(`.hf_dropitemtenure_${itemId}`).val(2);
  253. }
  254. else if ($(this).text() == 'Yearly') {
  255. parentEl.find('.plans-dp-link').text('Yearly');
  256. $(`.hf_dropitemtenure_${itemId}`).val(3);
  257. }
  258. else if ($(this).text() == 'Daily') {
  259. parentEl.find('.plans-dp-link').text('Daily');
  260. $(`.hf_dropitemtenure_${itemId}`).val(1);
  261. }
  262. parentEl.find('.plan-price').text($(this).attr('data-price'));
  263. });
  264. }
  265. });
  266. });
  267. }
  268. getBoMItems(itemId) {
  269. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  270. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getbomitems(itemId).then(function (BoMresponse) {
  271. var BoMres = BoMresponse.result;
  272. if (BoMres.length != 0) {
  273. for (var i = 0; i < BoMres.length; i++) {
  274. var html = `<li class="plan-list-item">
  275. ${BoMres[i].ChildItemName}
  276. </li>`;
  277. $(`.PlanList_` + BoMres[i].ParentItemId + `:first`).append(html);
  278. }
  279. }
  280. });
  281. });
  282. }
  283. getAddonsList(itemid, tenureid) {
  284. $('.plan-select-box').removeClass('checked');
  285. $(`.planSelectBox_${itemid}`).addClass('checked');
  286. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  287. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getAddonsItems(itemid, tenureid).then(function (response) {
  288. var res = response.result;
  289. var html = ``;
  290. for (var i = 0; i < res.length; i++) {
  291. html += `<div class="product-card CartItems">
  292. <div class="product-card-body">
  293. <div class="product-img-wrap">
  294. <img src="https://www.pteinc.com/wp-content/uploads/2021/04/Process-Automation-Icon-Redn.png" alt="" class="product-img">
  295. </div>
  296. <div class="product-title-desc-wrap">
  297. <p class="product-title" title="${res[i].ItemName}">${res[i].ItemName}</p>
  298. <p class="product-desc" title="Automation Evolved Evolved Evolved Evolved">
  299. ${res[i].Description}
  300. </p>
  301. </div>
  302. </div>
  303. <div class="product-card-footer">
  304. <span class="product-price inr-sign">${res[i].SalesPrice}</span>
  305. <a href="javascript:;" class="btn btnadd_${res[i].ItemId} cart-btn add-cart-btn btnTxt" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().btnChange(\'btnadd_${res[i].ItemId},btnadd_${tenureid}\');" >Add</a>
  306. </div>
  307. <div class="offer-percentage">0%</div>
  308. <input type="hidden" id="hf_addonQuantity" value=${res[i].SubscriptionAddonsQuantity} /> <input type="hidden" id="hf_addonSku" value=${res[i].Sku} /> <input type="hidden" id="hf_CartItemId" value=${res[i].ItemId} />
  309. </div>`;
  310. }
  311. $(".add-on-products-sec .ListAddons").html(html);
  312. });
  313. });
  314. }
  315. btnChange(itemid) {
  316. var BtnText = $("." + itemid + "").text();
  317. if (BtnText == "Add") {
  318. $("." + itemid + "").removeClass("add-cart-btn");
  319. $("." + itemid + "").addClass("remove-cart-btn");
  320. $("." + itemid + "").text("Remove");
  321. }
  322. if (BtnText == "Remove") {
  323. $("." + itemid + "").addClass("add-cart-btn");
  324. $("." + itemid + "").removeClass("remove-cart-btn");
  325. $("." + itemid + "").text("Add");
  326. }
  327. }
  328. sendOtp() {
  329. var instance = this;
  330. var ContactText = $(".txt_phonenumber").val().toString();
  331. let Ismail = ContactText.includes("@");
  332. if (ContactText != "") {
  333. if (Ismail == false) {
  334. if (ContactText.length == 10) {
  335. var token = "123456";
  336. RegisterEmail.instance.isMail = Ismail;
  337. instance.fileCacheHelper.loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () {
  338. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getContactnumuberdetails(ContactText).then(function (response) {
  339. var res = response.result;
  340. if (res != null && res != "") {
  341. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Mobile Number Already Exists");
  342. }
  343. else {
  344. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().sendEmail(ContactText, Ismail);
  345. }
  346. });
  347. });
  348. }
  349. else {
  350. MessageHelper.Instance().showError("Please Enter Valid Input Details!", "pricingFormErrMsg");
  351. }
  352. }
  353. if (Ismail == true) {
  354. RegisterEmail.instance.isMail = Ismail;
  355. var token = "123456";
  356. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpVerificationModal();
  357. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().sendEmail(ContactText, Ismail);
  358. }
  359. }
  360. else {
  361. MessageHelper.Instance().showError("Please Enter Valid Input Details!", "pricingFormErrMsg");
  362. }
  363. }
  364. initiatePlansCarousel() {
  365. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadFile({
  366. FileName: 'libs/owl.carousel/owl.carousel.min.js',
  367. FileType: Unibase.Platform.Helpers.FileType.Js
  368. }, function () {
  369. $('#biz-plans-carousel').owlCarousel({
  370. autoplay: false,
  371. loop: false,
  372. nav: true,
  373. navText: [
  374. '<i class="fa fa-angle-left"></i>',
  375. '<i class="fa fa-angle-right"></i>',
  376. ],
  377. dots: false,
  378. autoHeight: true,
  379. responsiveClass: true,
  380. responsive: {
  381. 0: {
  382. items: 1
  383. },
  384. 575: {
  385. items: 1
  386. },
  387. 767: {
  388. items: 2
  389. },
  390. 991: {
  391. items: 2
  392. },
  393. 1199: {
  394. items: 3
  395. }
  396. }
  397. });
  398. });
  399. }
  400. loadCustomUiJs() {
  401. const formEl = $('[data-formuniquekey="bizgaze_transact_extension_subscription_userverification"],[data-formuniquekey="bizgaze_transact_extension_subscription_upgradeplan"]');
  402. const headerHeight = formEl.find('.pricing-details-header-wrap').outerHeight(true);
  403. const detailBodyPaddingBottom = parseInt(formEl.find('.pricing-details-body-wrap').css('padding-bottom'));
  404. const carouselHeadingHeight = formEl.find('.plan-details-wrap .form-heading').outerHeight(true);
  405. formEl.find('.pricing-details-body-wrap').css('height', `calc(100vh - ${headerHeight - 2}px)`);
  406. const finalCarouselWrapHeight = headerHeight + carouselHeadingHeight + detailBodyPaddingBottom;
  407. if ($(window).width() >= 991) {
  408. formEl.find('.plans-carousel-wrap').css({ 'max-height': `calc(100vh - ${finalCarouselWrapHeight}px)`, 'overflow-y': 'auto' });
  409. }
  410. const planCardItem = formEl.find('.plan-card-item').first();
  411. const itemPropertiesHeight = parseInt(planCardItem.css('margin-top')) + parseInt(planCardItem.css('margin-bottom')) + parseInt(planCardItem.css('border-top'));
  412. const itemHeaderHeight = planCardItem.find('.card-header').outerHeight(true);
  413. const itemFooterHeight = planCardItem.find('.card-footer').outerHeight(true);
  414. const planNameHeight = planCardItem.find('.plan-price-wrap').outerHeight(true);
  415. const finalItemListHeight = finalCarouselWrapHeight + itemPropertiesHeight + itemHeaderHeight + itemFooterHeight + planNameHeight;
  416. formEl.find('.plan-card-item .plan-list-group').css({ 'height': `calc(100vh - ${finalItemListHeight + 10}px)` });
  417. }
  418. otpInputTabChange(val) {
  419. const ele = $('.otp-input');
  420. if (ele[val - 1].value != '') {
  421. if (ele[val])
  422. ele[val].focus();
  423. }
  424. else if (ele[val - 1].value == '') {
  425. if (ele[val - 2])
  426. ele[val - 2].focus();
  427. }
  428. }
  429. sendEmail(email, Ismail) {
  430. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  431. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().sendRegistrationMail(email, Ismail).then(function (response) {
  432. var res = response.message;
  433. RegisterEmail.instance.registertoken = response.result;
  434. var registertoken = '123456';
  435. Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpVerificationModal();
  436. });
  437. });
  438. }
  439. otpVerificationModal() {
  440. const html = `<div class="modal fade otp-verification-modal" id="otpVerificationModal">
  441. <div class="modal-dialog modal-dialog-centered" role="document">
  442. <div class="modal-content">
  443. <div class="modal-body">
  444. <div class="otp-err-msg" id="otpErrMsg"></div>
  445. <img src="./imgs/otp-verify-img.png" class="otp-verify-img h-100p w-100p">
  446. <div class="otp-heading-wrap">
  447. <h5 class="otp-heading font-weight-bold mb-10">OTP Verification</h5>
  448. <p class="otp-desc">Enter 6 Digit Verification Code sent</p>
  449. </div>
  450. <div class="otp-input-group">
  451. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(1);" maxlength=1>
  452. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(2);" maxlength=1>
  453. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(3);" maxlength=1>
  454. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(4);" maxlength=1>
  455. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(5);" maxlength=1>
  456. <input class="otp-input" type="text" onkeyup="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpInputTabChange(6);" maxlength=1>
  457. </div>
  458. <div class="otp-modal-footer mt-30">
  459. <p class="otp-timer text-danger d-none">Time: <span class="otp-expire-time">00:46</span></p>
  460. <a href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().sendOtp();" class="otp-resend-link">Resend Code</a>
  461. <a href="javascript:;" class="btn subs-btn-outline-primary otp-submit-btn" id="otpSubmitBtn" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.RegisterEmail.Instance().otpSubmitHandler();">Submit</a>
  462. </div>
  463. <a href="javascript:;" class="modal-close-btn btn btn-icon btn-flush-danger btn-rounded flush-soft-hover w-30p h-30p" id="otpModalCloseBtn"><span class="btn-icon-wrap"><i class="las la-times"></i></span></a>
  464. </div>
  465. </div>
  466. </div>
  467. </div>`;
  468. const containerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  469. $('.otp-verification-modal').remove();
  470. $(`#${containerId}`).append(html);
  471. const otpModalEl = $('#otpVerificationModal');
  472. otpModalEl.addClass('show d-block');
  473. $('.otp-input').first().focus();
  474. $('#otpModalCloseBtn').click(function () {
  475. otpModalEl.removeClass('show d-block');
  476. });
  477. $('.otp-input-group .otp-input').on('input', function (e) {
  478. const inputEl = this;
  479. inputEl.value = inputEl.value.replace(/[^0-9]/g, '');
  480. });
  481. }
  482. otpSubmitHandler() {
  483. let enteredOtp = '';
  484. $('.otp-input').each(function () {
  485. enteredOtp += $(this).val();
  486. });
  487. let otp = RegisterEmail.instance.registertoken;
  488. var token = '123456';
  489. if (token === enteredOtp) {
  490. $('#otpVerificationModal').removeClass('show d-block');
  491. $(".txt_phonenumber").prop('disabled', true);
  492. $('#phoneVerifyBtn').text('Verified').removeClass('btn-primary').addClass('btn-success').removeAttr('onclick');
  493. $('.registration-proceed-btn').removeClass('d-none');
  494. }
  495. else {
  496. MessageHelper.Instance().showError('Invalid OTP!', 'otpErrMsg');
  497. }
  498. }
  499. saveCartItems(registertoken) {
  500. var CartItemData = [];
  501. RegisterEmail.instance.regmail = $("#ContactText").val();
  502. $(".List_cartItems").find(".CartItems").each(function () {
  503. var addcheck = $(this).find('.addonchk').hasClass('checked');
  504. var itemId = Number($(this).find('#hf_CartItemId').val());
  505. var registermail = $("#contactInput").val().toString();
  506. var registerToken = registertoken;
  507. var btnTxt = $(this).find('.btnTxt').text();
  508. if (addcheck || btnTxt == 'Remove') {
  509. CartItemData.push({
  510. ItemId: itemId,
  511. RegisterMail: registermail,
  512. RegisterToken: registerToken,
  513. CartItemId: 0,
  514. IsMail: RegisterEmail.instance.isMail
  515. });
  516. }
  517. });
  518. this.fileCacheHelper.loadJsFiles(['apps/transact/managers/subscriptions/subscriptionmanager.js', 'apps/transact/components/subscriptions/userregistration.component.js'], function () {
  519. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().saveCartItems(CartItemData).then(function (response) {
  520. var res = response.result;
  521. var token = res.RegisterToken;
  522. var regmail = res.RegisterMail;
  523. if (res != null) {
  524. }
  525. });
  526. });
  527. }
  528. TryUser() {
  529. var instance = this;
  530. instance.fileCacheHelper.loadJsFiles(["platform/forms/managers/formmanager.js", "platform/apps/managers/appmanager.js", "platform/forms/components/formviewer/formviewer.js", "libs/moment/moment.min.js", "platform/core/helpers/html/htmlhelper.js", "apps/transact/managers/subscriptions/subscriptionmanager.js",
  531. "apps/transact/components/subscriptions/userregistration.component.js",
  532. "apps/transact/controls/subscriptions/addons.component.js",
  533. "apps/transact/controls/subscriptions/orderdetails.component.js", "platform/controls/autocomplete/autocomplete.component.js", "platform/core/helpers/autocomplete/autocompletehelper.js", "apps/transact/controls/subscriptions/tryuserregistration.component.js"], function () {
  534. var formuniqueid = "Bizgaze_Platform_Crm_subscription_try_user";
  535. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(formuniqueid).then(function (response) {
  536. instance.fileCacheHelper.loadJsFiles(["platform/apps/enums/appconfigurationtypes.js", "apps/transact/managers/subscriptions/subscriptionmanager.js"], function () {
  537. instance.navigationHelper.showLoading();
  538. var successObj = {
  539. CallBack: function (id) {
  540. var obj = {
  541. id: id,
  542. };
  543. Bizgaze.Apps.Transact.Controls.Subscriptions.TryUserRegistration.Instance().createTryTenant(obj.id);
  544. },
  545. Parameters: null,
  546. };
  547. var formviewerObj = {
  548. FormId: response.result.FormId,
  549. AppConfigurationId: 0,
  550. Pk_Value: 0,
  551. PortletWidgetId: 0,
  552. OnSuccess: successObj,
  553. OnFail: null,
  554. OnLoad: null,
  555. FormSize: Unibase.Platform.Helpers.Size.ExtraLarge
  556. };
  557. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  558. });
  559. });
  560. });
  561. }
  562. loadControlSettings(controlsettingjson, formpropertyid) {
  563. }
  564. loadPropertySettings(propertysettings, formpropertyid, DocPropertyName) {
  565. }
  566. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  567. }
  568. static Instance() {
  569. if (this.instance === undefined) {
  570. this.instance = new RegisterEmail();
  571. }
  572. return this.instance;
  573. }
  574. }
  575. Subscriptions.RegisterEmail = RegisterEmail;
  576. })(Subscriptions = Controls.Subscriptions || (Controls.Subscriptions = {}));
  577. })(Controls = Transact.Controls || (Transact.Controls = {}));
  578. })(Transact = Apps.Transact || (Apps.Transact = {}));
  579. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  580. })(Bizgaze || (Bizgaze = {}));