Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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 = {}));