{"version":3,"file":"js/profileAndSettings.js","mappings":"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","sources":["webpack://localhost:5001/./src/ts/pricePages.ts","webpack://localhost:5001/./src/ts/profileAndSettings.ts"],"sourcesContent":["export class Option {\r\n private _current;\r\n private _next;\r\n current;\r\n next;\r\n action;\r\n\r\n private ToNum(str) {\r\n let dig = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n if (str[i] >= '0' && str[i] <= '9') {\r\n dig *= 10;\r\n dig += str[i] - ('0' as any);\r\n }\r\n }\r\n return dig;\r\n }\r\n\r\n private GetObj(target: JQuery) {\r\n const rm = target.find('.recMonthly');\r\n const items = target.find('.packageIncludes li');\r\n const include = [];\r\n const optional = [];\r\n items.each(function (_, el) {\r\n const $el = $(el);\r\n if ($el.hasClass('packageIncludeOption')) {\r\n include.push($el.html());\r\n }\r\n if ($el.hasClass('packageIncludeOptionOptional')) {\r\n optional.push($el.find('label').html());\r\n }\r\n });\r\n\r\n const self = this;\r\n try {\r\n return {\r\n name: target.find('.plans-name').html(),\r\n price: +target.find('.plans-price span').html().substr(1),\r\n records: self.ToNum($(rm[0]).html()), //Dom get html => $(rm[0]).html()\r\n minutes: self.ToNum($(rm[1]).html()),\r\n include: include,\r\n optional: optional\r\n }\r\n } catch (e) {\r\n return {\r\n name: undefined,\r\n price: undefined,\r\n records: undefined, //Dom get html => $(rm[0]).html()\r\n minutes: undefined,\r\n include: include,\r\n optional: optional\r\n }\r\n }\r\n }\r\n\r\n constructor(e) {\r\n this._current = $('.btn-inactive').parents('.plans-item');\r\n this._next = $(e.target).parents('.plans-item');\r\n this.current = this.GetObj(this._current);\r\n this.next = this.GetObj(this._next);\r\n this.action = this.current.price > this.next.price ? 'Downgrade' : 'Upgrade';\r\n }\r\n}\r\n\r\nexport function PricePages(id) {\r\n PricePlans();\r\n PriceLeads();\r\n PriceMinutes();\r\n SelectPrice();\r\n $('.root-preloader').hide();\r\n\r\n /**\r\n * ActionPrice(): Function\r\n * Actions after click on button Purchase\r\n * @param name - leads or minutes \r\n */\r\n function ActionPrice(name) {\r\n $(`.btn-purchase-${name}`).off('click').on('click', (e) => {\r\n if ($(e.currentTarget).hasClass('btn-inactive')) return;\r\n\r\n const packid = $(`.radio-${name}:checked`).data('id');\r\n\r\n if (packid == undefined) {\r\n alert('Please Choose?');\r\n return;\r\n }\r\n\r\n fetch('/Price/GetPackPrice', {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n id: packid\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n if (data.email == null) {\r\n ($('#login-modal') as any).modal('show');\r\n } else {\r\n const price = data.price + ',00';\r\n // window['intellipay'].auth.defaults.account = data.email;\r\n // window['intellipay'].auth.feelookup.account = data.email;\r\n // window['intellipay'].auth.transaction.account = data.email;\r\n // window['intellipay'].auth.defaults.amount = price;\r\n // window['intellipay'].auth.feelookup.amount = price;\r\n // window['intellipay'].auth.transaction.amount = price;\r\n // window['intellipay'].action = 'Leads&Minutes';\r\n // window['intellipay'].packid = packid;\r\n // window['intellipay'].forYear = false;\r\n // window['intellipay'].autoOpen();\r\n\r\n window['InstanceBase'].loadPurchaseModal(data.email, price, packid, false);\r\n //window['InstanceBase'].showPurchaseModal(data.email, price, packid, false);\r\n }\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n\r\n //$.post('/Price/GetPackPrice', { id: packid }, (data) => {\r\n\r\n //});\r\n });\r\n }\r\n\r\n /**\r\n * CheckLeadsMinuts(): Function\r\n * @param rechargeName Leads or Minutes\r\n * @param value\r\n */\r\n function CheckLeadsMinuts(rechargeName, value) {\r\n $(`.packages-balance-input-${rechargeName}-falls`).prop('disabled', !value);\r\n $(`.packages-balance-input-${rechargeName}-buy`).prop('disabled', !value);\r\n $(`.packages-${rechargeName}-check`).prop('disabled', !value);\r\n value ? $(`.packages-${rechargeName}-check`).removeClass('disabled') : $(`.packages-${rechargeName}-check`).addClass('disabled');\r\n }\r\n\r\n function GetFormattedDate(date) {\r\n const year = date.getFullYear();\r\n\r\n let month = (1 + date.getMonth()).toString();\r\n month = month.length > 1 ? month : '0' + month;\r\n\r\n let day = date.getDate().toString();\r\n day = day.length > 1 ? day : '0' + day;\r\n\r\n return month + '/' + day + '/' + year;\r\n }\r\n\r\n /**\r\n * LoadDowngradeModal(): Function\r\n * @param packId - selected plan Id\r\n * @param e - event on selected button\r\n */\r\n function LoadDowngradeModal(packId, e) {\r\n if ($('#downgradeModal').length) {\r\n ShowDowngradeModal(packId, e);\r\n } else {\r\n fetch('/Popups/DowngradeModal', {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.text();\r\n })\r\n .then(data => {\r\n $('body').append(data);\r\n ShowDowngradeModal(packId, e);\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n //$.post('/Popups/DowngradeModal', data => {\r\n //});\r\n }\r\n }\r\n\r\n function OnAction(rechargeName, rev = false) {\r\n const tar = rechargeName.toLowerCase();\r\n const limit = +$(`.packages-balance-input-${tar}-falls`).val();\r\n let amount = +$(`.packages-balance-input-${tar}-buy`).val();\r\n const enabled = $(`.packages-${tar}-switch-input`).is(':checked');\r\n const bt = $(`.packages-${tar}-check, .packages-balance-input-${tar}-falls, .packages-balance-input-${tar}-buy`);\r\n const b = rev ? !enabled : enabled;\r\n if (b) {\r\n bt.removeAttr('disabled');\r\n bt.removeClass('disabled');\r\n }\r\n else {\r\n bt.attr('disabled', 'disabled');\r\n bt.addClass('disabled');\r\n }\r\n\r\n amount = !enabled ? amount : -amount;\r\n if (rev)\r\n amount = -amount;\r\n\r\n if (amount < 0)\r\n fetch('/Price/GetPackPrice', {\r\n method: 'GET',\r\n body: JSON.stringify({\r\n amount: amount,\r\n limit: limit,\r\n type: rechargeName,\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then(() => {\r\n console.log\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n //$.get('/SaveAutoRecharge', {\r\n // type: rechargeName,\r\n // amount: amount,\r\n // limit: limit,\r\n //}, console.log);\r\n }\r\n\r\n /**\r\n * OnChangeFields(): Function\r\n * @param rechargeName Leads or Minutes\r\n */\r\n function OnChangeFields(rechargeName) {\r\n const tar = rechargeName.toLowerCase();\r\n\r\n $(`.packages-balance-input-${tar}-falls, .packages-balance-input-${tar}-buy`).on('change', () => {\r\n OnAction(rechargeName, true);\r\n });\r\n\r\n $(`.packages-${tar}-switch-label`).on('click', () => {\r\n //self.OnAction(rechargeName);\r\n $(`.packages-${tar}-switch`).trigger('dxclick');\r\n });\r\n }\r\n\r\n /**\r\n * PriceDevExSwitch(): Function\r\n * Create devExtreme switch\r\n * @param id - element id or class\r\n * @returns devExtreme switch\r\n */\r\n function PriceDevExSwitch(id) {\r\n return ($(id) as any).dxSwitch({\r\n hoverStateEnabled: false,\r\n onValueChanged: (e) => {\r\n CheckLeadsMinuts($(e.element).attr('data-name'), e.value);\r\n //self.OnAction($(e.element).attr('data-name'))\r\n },\r\n switchedOffText: 'DISABLED',\r\n switchedOnText: 'ENABLED',\r\n value: $(id).attr('data-checked') == 'checked' ? true : false,\r\n width: 65\r\n }).dxSwitch('instance');\r\n }\r\n\r\n /**\r\n * PriceLeads(): Function\r\n */\r\n function PriceLeads() {\r\n const switchLeads = PriceDevExSwitch(`${id} .packages-leads-switch`);\r\n\r\n ActionPrice('leads');\r\n SaveAutoRecharge('Leads');\r\n OnChangeFields('Leads');\r\n }\r\n\r\n /**\r\n * PriceMinutes(): Function\r\n */\r\n function PriceMinutes() {\r\n const switchMinutes = PriceDevExSwitch(`${id} .packages-minutes-switch`);\r\n\r\n ActionPrice('leads');\r\n SaveAutoRecharge('Minutes');\r\n OnChangeFields('Minutes');\r\n }\r\n\r\n /**\r\n * PricePlans(): Function\r\n * Actions after click on button Buy plan\r\n */\r\n function PricePlans() {\r\n $('.btn-price-plan').off('click').on('click', (e) => {\r\n e.preventDefault();\r\n\r\n const packId = $(e.currentTarget).data('packid');\r\n if (packId == undefined) return;\r\n\r\n if ($(e.currentTarget).hasClass('btn-inactive')) {\r\n if ($('.btn-tochange').length > 0) {\r\n LoadDowngradeModal(packId, e);\r\n }\r\n return;\r\n }\r\n\r\n if ($('.btn-inactive').length > 0) {\r\n LoadDowngradeModal(packId, e);\r\n return;\r\n }\r\n\r\n fetch('/Price/CurrentPlan', {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n if (data) {\r\n LoadDowngradeModal(packId, e);\r\n return;\r\n } else {\r\n fetch('/Price/GetPackPrice', {\r\n method: 'GET',\r\n body: JSON.stringify({\r\n forYear: false,\r\n id: packId,\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n if (data.email == null) {\r\n if (window['User']) {\r\n let price = '' + data.price;\r\n price = price + ',00';\r\n window['InstanceBase'].loadPurchaseModal(window['User'].Email, price, packId, false);\r\n }\r\n else {\r\n ($('#login-modal') as any).modal('show');\r\n }\r\n }\r\n else {\r\n let price = '' + data.price;\r\n price = price + ',00';\r\n window['InstanceBase'].loadPurchaseModal(data.email, price, packId, false);\r\n }\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n\r\n }\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n\r\n //$.post('/Price/CurrentPlan', (data) => {\r\n // $.post('/Price/GetPackPrice', { id: packId, forYear: false }, (data) => {\r\n\r\n // });\r\n //});\r\n });\r\n }\r\n\r\n /**\r\n * SaveAutoRecharge(): Function\r\n * @param rechargeName Leads or Minutes\r\n */\r\n function SaveAutoRecharge(rechargeName) {\r\n const tar = rechargeName.toLowerCase();\r\n\r\n // === Click on button Save\r\n $(`.packages-${tar}-check`).on('click', () => {\r\n const limit = +$(`.packages-balance-input-${tar}-falls`).val();\r\n const amount = +$(`.packages-balance-input-${tar}-buy`).val();\r\n const enabled = ($(`.packages-${tar}-switch`) as any).dxSwitch('instance').option('value');\r\n //const enabled = $(`${sectionId} .packages-${tar}-switch-input`).is(':checked');\r\n if (enabled)\r\n fetch('/SaveAutoRecharge', {\r\n method: 'GET',\r\n body: JSON.stringify({\r\n amount: amount,\r\n limit: limit,\r\n type: rechargeName,\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then(() => {\r\n fetch('/Account/Check', {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n const objModal = {\r\n size: 'sm',\r\n textModal: 'Saved',\r\n textYesBtn: 'Ok',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(objModal);\r\n $('#price-leads-tab span').html(data.Leads);\r\n $('#price-minutes-tab span').html(data.Minutes);\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n });\r\n }\r\n\r\n function SelectPrice() {\r\n // === Select price for minutes or leads\r\n $('.packages-price-list .list-group-item').off('click').on('click', (e) => {\r\n $(e.currentTarget).find('input[type=\"radio\"]').prop('checked', true);\r\n })\r\n }\r\n\r\n /**\r\n * ShowDowngradeModal(): Function\r\n * Show #downgradeModal\r\n * \r\n * @param packId - selected plan Id\r\n * @param e - event on selected button\r\n * @returns - if selected plan is current - return false\r\n */\r\n function ShowDowngradeModal(packId: number, e) {\r\n const option = new Option(e);\r\n\r\n // === If select current plan - break\r\n if ($(e.target).text().includes('Current'))\r\n return false;\r\n\r\n option.current.price = option.current.price ?? 0;\r\n $('#downgradeModal .action').html(option.action);\r\n $('#downgradeModal .current').html(option.current.name);\r\n $('#downgradeModal .next').html(option.next.name);\r\n $('#downgradeModal .currentRec').html(option.current.records);\r\n $('#downgradeModal .nextRec').html(option.next.records);\r\n $('#downgradeModal .currentMin').html(option.current.minutes);\r\n $('#downgradeModal .nextMin').html(option.next.minutes);\r\n $('#downgradeModal .currentPrice').html(`$${option.current.price}/monthly`);\r\n $('#downgradeModal .nextPrice').html(`$${option.next.price}/monthly`);\r\n $('#downgradeModal .downgrade-remove').html('');\r\n //let defers = [];\r\n\r\n if (option.action == 'Downgrade') {\r\n option.current.include = option.current.include.filter((item, pos) => {\r\n return option.current.include.indexOf(item) == pos;\r\n })\r\n\r\n for (let i = option.next.include.length; i < option.current.include.length; i++) {\r\n $('#downgradeModal .downgrade-remove').append(`
  • ${option.current.include[i]}
  • `);\r\n }\r\n $('#downgradeModal .downgrade-remove').removeClass('upgrade').addClass('downgrade');\r\n $('#downgradeModal .downgrade-limit').removeClass('upgrade').addClass('downgrade');\r\n $('#downgradeModal .changeText1').html('remove');\r\n $('#downgradeModal .changeText2').html('usage limits to some features');\r\n $('#downgradeModal .upgradeRemoveText').show();\r\n if (option.next.name == 'Basic' && option.current.name == 'Individual') $('.warning-top').hide();\r\n } else {\r\n $('.warning-top').show();\r\n for (let i = option.current.include.length; i < option.next.include.length; i++) {\r\n $('#downgradeModal .downgrade-remove').append(`
  • ${option.next.include[i]}
  • `);\r\n }\r\n $('#downgradeModal .downgrade-remove').removeClass('downgrade').addClass('upgrade');\r\n $('#downgradeModal .downgrade-limit').removeClass('downgrade').addClass('upgrade');\r\n $('#downgradeModal .changeText1').html('add');\r\n $('#downgradeModal .changeText2').html('more Records and Minutes to your account');\r\n $('#downgradeModal .upgradeRemoveText').hide();\r\n }\r\n\r\n $('#downgradeModal .nextDate').html(GetFormattedDate(window['nextDate']));\r\n ($('#downgradeModal') as any).modal('show');\r\n\r\n $('#downgradeModal .btn-savePlan').off('click').on('click', (e) => {\r\n e.preventDefault();\r\n fetch('/Price/CurrentPlan', {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n if (option.action == 'Upgrade' && !data) {\r\n const price = option.next.price - option.current.price;\r\n window['InstanceBase'].loadPurchaseModal($('.mh-welcome-email').text(), price, packId, true);\r\n } else {\r\n fetch('/Price/SetNextPackage', {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n packid: packId\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n },\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then(() => {\r\n location.reload();\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n ($('#downgradeModal') as any).modal('hide');\r\n }\r\n })\r\n .catch(error => {\r\n window['InstanceBase'].requestErrorActions(error);\r\n });\r\n });\r\n }\r\n}","/* eslint-disable no-inner-declarations */\r\n\r\n/**\r\n * profileAndSettings.ts\r\n * \r\n * window['editEmailTemplate'] - data for edit email\r\n * window['EmailScore']\r\n * window['Phone_Price'] // ?!\r\n * window['phoneSettingsChangeStatus'] - if change Buy Number page \r\n */\r\n\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport dxTextBox from 'devextreme/ui/text_box';\r\nimport { forEachCorner } from 'ol/extent';\r\nimport * as price from './pricePages';\r\n\r\nconst debug2 = require('./debug');\r\nconst IntelliPay = require('./intellipay');\r\n\r\nconst Logger = debug2('profile and settings');\r\nLogger.enabled = true;\r\nLogger.log = console.info;\r\n\r\ndeclare const bootstrap: any;\r\n\r\nmodule.exports = class ProfileAndSettings {\r\n log: Function;\r\n currentSelectedRow: any; // ?? reminders.ts?\r\n paymentStatesData: any; // => Payment method\r\n srcNotifications: CustomStore; // reminders.ts?\r\n srcPromoCodes: CustomStore;\r\n\r\n emailReg = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n invalidClassname = 'is-invalid';\r\n isCompanyNameValid = false; /** TODO => #upCompanyOwnerModal */\r\n isFormInvalid = false; // => Payment method\r\n isPhoneValid = false; /** TODO => #upCompanyOwnerModal */\r\n\r\n leadsMinutesPeriod: { type: string, start?: Date, end?: Date } = { type: 'Today' };\r\n systemOwnerObj = {}; // obj with data of User if he send request up to Company Owner\r\n\r\n constructor(debug?: boolean) {\r\n const self = this;\r\n this.log = Logger;\r\n this.log('Init')\r\n //$(function () {\r\n\r\n //$('#ps-toggle-check').on('change', () => {\r\n // if ($('#ps-toggle-check').prop('checked')) {\r\n self.onReady();\r\n // }\r\n // else {\r\n // ($('#ps-accountSettings-tab') as any).tab('show');\r\n // }\r\n //})\r\n\r\n //})\r\n window['ProfileSettings'] = this;\r\n }\r\n\r\n /**\r\n * onReady(): Function\r\n * Settings first actions\r\n */\r\n onReady() {\r\n const self = this;\r\n IntelliPay();\r\n\r\n Logger('Ready');\r\n\r\n //$('#ps-toggle-check').prop('checked', open);\r\n\r\n self.psMenu();\r\n self.psShowing();\r\n }\r\n\r\n // ======================================= BASE ==================================\r\n /**\r\n * psChoosenTabMenu(): Function\r\n * @param choosenTab - name of tab which content needs to be shown\r\n * @param option ??\r\n */\r\n psChoosenTabMenu(choosenTab, option?: any) {\r\n const self = this;\r\n let callback = undefined;\r\n if (option && option.submenu) {\r\n callback = () => {\r\n $(option.submenu).trigger('click');\r\n }\r\n }\r\n switch (choosenTab) {\r\n case 'emailSettings': self.psGetPartSettings('EmailSettings', choosenTab, callback); break;\r\n // case 'notificationSettings': self.psGetPartSettings('NotificationSettings', choosenTab, callback); break;\r\n case 'paymentMethodSettings': self.psGetPartSettings('PaymentMethodSettings', choosenTab, callback); break;\r\n case 'phoneSettings': self.psGetPartSettings('PhoneSettings', choosenTab); break;\r\n case 'planUpgradeSettings': self.psGetPartSettings('PlanUpgradeSettings', choosenTab, callback); break;\r\n case 'promoCodes': self.psGetPartSettings('PromoCodes', choosenTab, callback); break;\r\n case 'purchasedHistorySettings': self.psGetPartSettings('PurchasedHistorySettings', choosenTab, callback); break;\r\n case 'referrals': self.psGetPartSettings('Referrals', choosenTab, callback); break;\r\n case 'settingsSettings': self.psGetPartSettings('SettingsSettings', choosenTab, callback); break;\r\n case 'usageOverviewSettings': self.psGetPartSettings('UsageOverviewSettings', choosenTab, callback); break;\r\n default: self.psGetPartSettings('AccountSettings', 'accountSettings'); break;\r\n }\r\n }\r\n\r\n psDateRangeTodayBtn(parentId) {\r\n const fromDateField = ($(`${parentId} .ywftDateRange-devExDateFrom`) as any).dxDateBox('instance');\r\n fromDateField.option('value', new Date());\r\n $(`${parentId} .settings-dateRange-btn`).addClass('active');\r\n window['setActiveTodayBtn'] = true;\r\n }\r\n\r\n /**\r\n * psGetPartSettings(): Function\r\n * Load from back data for current tab\r\n * \r\n * @param functionName - back request name\r\n * @param tabFunctionName - tab name\r\n * @param callback\r\n */\r\n psGetPartSettings(functionName, tabFunctionName, callback?: Function) {\r\n const self = this;\r\n $('.root-preloader').show();\r\n $.post(`/ProfileAndSettings/${functionName}`, data => {\r\n if ($(`#${tabFunctionName}`)) $(`#${tabFunctionName}`).empty().append(data);\r\n switch (tabFunctionName) {\r\n case 'emailSettings': self.emailSettings(); break; // === 3 === Email Settings\r\n // case 'notificationSettings': self.NotificationSettingsImport(); break;\r\n case 'paymentMethodSettings': self.paymentMethodSettings(); break; // === 6 === Payment Method\r\n case 'phoneSettings': self.phoneSettings(); break; // === 4 === Phone Settings\r\n case 'planUpgradeSettings': self.planUpgradeSettings(); break; // === 7 === Plan & Upgrade\r\n case 'promoCodes': self.promoCodesSettings(); break; // === 8 === Promo Code // only for superadmin \r\n case 'purchasedHistorySettings': self.purchasedHistorySettings(); break; // === 5 === Order history\r\n case 'referrals': self.referralsSettings(); break; // === 9 === Referrals\r\n case 'settingsSettings': self.generalSettings(); break; // === 2 === General Settings\r\n case 'usageOverviewSettings': self.usageSettings(); break; // === 6 === Usage\r\n default: self.accountSettings(); break; // === 1 === Profile\r\n }\r\n if (callback) callback();\r\n //$('.ps-email-nav-tabs .sentEmail-tab').on('shown.bs.tab', () => {\r\n // self.emailSettings();\r\n // setTimeout(() => {\r\n // window['fixShowLinesDevExGrid']('#gvEmailLogs', true);\r\n // }, 500)\r\n //}); // !!!!!\r\n //$('.ps-email-nav-tabs .sentEmail-tab').on('hidden.bs.tab', () => {\r\n // window['fixShowLinesDevExGrid']('#gvEmailLogs', false);\r\n //}) // !!!!!\r\n //$('.root-preloader').hide();\r\n });\r\n }\r\n\r\n /**\r\n * psLoadTabContent(): Function\r\n * @param tabContentId\r\n * @param requestName\r\n * @param callback\r\n */\r\n psLoadTabContent(tabContentId, requestName, callback) {\r\n if (!$(tabContentId).find('.ps-section-item').length) {\r\n $('.root-preloader').show();\r\n $.post(`/Popups/${requestName}`, data => {\r\n $(tabContentId).append(data);\r\n callback();\r\n });\r\n } else {\r\n if (tabContentId === '#ps-es-editEmailTemplate-content') {\r\n $('.root-preloader').show();\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * psMenu(): Function\r\n * Actions for Settings menu\r\n */\r\n psMenu() {\r\n $(window).resize(() => {\r\n if ($(window).width() <= 1300) {\r\n $('.ps-nav-link .nav').css('width', 'inherit');\r\n $('.ps-sidebar .nav .col-hide').hide();\r\n }\r\n else {\r\n $('.ps-nav-link .nav').css('width', '200px');\r\n $('.ps-sidebar .nav .col-hide').show();\r\n $('#ps-nav').removeClass('shadow');\r\n }\r\n })\r\n\r\n if ($(window).width() <= 1300) {\r\n $('.ps-nav-link .nav').css('width', 'inherit');\r\n $('.ps-sidebar .nav .col-hide').hide();\r\n }\r\n else {\r\n $('.ps-nav-link .nav').css('width', '200px');\r\n $('.ps-sidebar .nav .col-hide').show();\r\n $('#ps-nav').removeClass('shadow');\r\n }\r\n $('#ps-nav').hover(() => {\r\n if ($(window).width() <= 1300) {\r\n $('.ps-nav-link .nav').css('width', '200px');\r\n $('#ps-nav').addClass('shadow');\r\n $('.ps-sidebar .nav .col-hide').fadeIn(200);\r\n }\r\n }, () => {\r\n if ($(window).width() <= 1300) {\r\n $('.ps-nav-link .nav').css('width', 'inherit');\r\n $('#ps-nav').removeClass('shadow');\r\n $('.ps-sidebar .nav .col-hide').fadeOut(300);\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * psShowing(): Function\r\n * Actions for show/hide Settings window\r\n */\r\n psShowing() {\r\n const self = this;\r\n\r\n $('#ps-nav .ps-nav-link').off('show.bs.tab').on('show.bs.tab', (ev, option) => {\r\n //const choosenTab = $('#ps-nav').find('.active').attr('aria-controls');\r\n const choosenTab = $(ev.target).attr('aria-controls');\r\n self.psChoosenTabMenu(choosenTab, option);\r\n });\r\n $('#ps-toggle-check').on('change', () => {\r\n if ($('#ps-toggle-check').prop('checked')) {\r\n if (window['showAddCard']) {\r\n ($('#ps-payment-tab') as any).tab('show');\r\n }\r\n else if (sessionStorage.getItem('audioLibrary') ||\r\n sessionStorage.getItem('callsOnDashboardGrid') ||\r\n sessionStorage.getItem('crmCard-callLog') ||\r\n sessionStorage.getItem('fromExternal') ||\r\n sessionStorage.getItem('roboCallSettings') ||\r\n sessionStorage.getItem('voicemailLibrary')) {\r\n ($('#ps-phone-tab') as any).tab('show');\r\n }\r\n else if (sessionStorage.getItem('newEmailTemplate')) {\r\n ($('#ps-email-tab') as any).tab('show');\r\n }\r\n else {\r\n ($('#ps-accountSettings-tab') as any).tab('show');\r\n }\r\n } else ($('#ps-accountSettings-tab') as any).tab('show');\r\n })\r\n }\r\n\r\n // #region ======================================= Account settings ==================================\r\n /**\r\n * accountSettings(): Function\r\n * Load and show Account Settings\r\n */\r\n accountSettings() {\r\n const self = this;\r\n //this.systemOwnerObj;\r\n\r\n $.post('/ProfileAndSettings/AccountSettingsInfo', (data) => {\r\n self.asDetails(data.CurrentUser, data.AdditionalInfo);\r\n self.asLocation(data.AdditionalInfo);\r\n self.asCompanyInfo(data.AdditionalInfo);\r\n self.asPassword();\r\n self.asNotification(data.AdditionalInfo);\r\n self.asDeactivateAccount();\r\n self.asUserType();\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n });\r\n\r\n\r\n // === dashboard\r\n //$(document).on('focusout', '#hd-userGreeting', function (e: any) {\r\n // self.OnChange(this);\r\n //});\r\n\r\n //$('#hd-userGreeting').on('keypress', e => {\r\n // if (e.keyCode == 13 && !$('#sendRequestOnPromoutingTillOwner').is(':disabled'))\r\n // $('#sendRequestOnPromoutingTillOwner').trigger('click');\r\n //});\r\n\r\n // === ASActions()\r\n //$(document).on('focusout', '#accountSettings .custom-input', function (e: any) {\r\n // self.OnChange(this);\r\n //});\r\n }\r\n\r\n /**\r\n * asChangePassword(): Function\r\n */\r\n asChangePassword() {\r\n const passModal = {\r\n NewPassword: $('#ps-ad-newPassword').dxTextBox('instance').option('value'),\r\n OldPassword: $('#ps-ad-currentPassword').dxTextBox('instance').option('value'),\r\n };\r\n\r\n $.post('/ProfileAndSettings/ChangePassword', { model: passModal }, (data) => {\r\n if (!data.Error) {\r\n const obj = {\r\n hideCancelIcon: true,\r\n size: 'sm',\r\n textModal: 'Your password has been changed successfully!',\r\n textYesBtn: 'Ok',\r\n };\r\n window['InstanceBase'].onePropositionModalLoad(obj);\r\n\r\n $('#ps-ad-currentPassword').dxTextBox('instance').option('value', '');\r\n $('#ps-ad-newPassword').dxTextBox('instance').option('value', '');\r\n $('#ps-ad-confirmPassword').dxTextBox('instance').option('value', '');\r\n } else if (data.Message[0].Code == 'PasswordMismatch') {\r\n $('#ps-ad-currentPassword').dxTextBox('instance').option('validationStatus', 'invalid');\r\n\r\n const obj = {\r\n hideCancelIcon: true,\r\n position: 'top',\r\n size: 'sm',\r\n textModal: ' Your current password is not correct',\r\n textYesBtn: 'Ok',\r\n };\r\n window['InstanceBase'].onePropositionModalLoad(obj);\r\n //$('#currentPassword').closest('.position-relative').find('.invalid-feedback').show();\r\n }\r\n $('#ps-changePassword').prop('disabled', true);\r\n });\r\n }\r\n\r\n /**\r\n * asCheckIfUserSendEmailToBecomeCompanyOwner(): Function\r\n */\r\n asCheckIfUserSendEmailToBecomeCompanyOwner() {\r\n const self = this;\r\n $.ajax({\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/CheckIfUserSendEmailToBecomeCompanyOwner',\r\n dataType: 'json',\r\n crossDomain: true,\r\n success: (data) => {\r\n if (data.result) {\r\n self.systemOwnerObj = data.result;\r\n $('#upCompOwner-sendingDate').text(self.convertDate(data.result.SendingDate));\r\n $('#upCompOwner-requestSended-section').show();\r\n $('#upCompOwner-requestNotSended-section').hide();\r\n\r\n if ((self.systemOwnerObj as any).UpdateDate !== null) {\r\n $('#upCompOwner-resendDate').text(self.convertDate(data.result.UpdateDate));\r\n $('.upCompOwner-updateDate').css('display', 'inline-block');\r\n }\r\n } else {\r\n $('#upCompOwner-requestNotSended-section').show();\r\n $('#upCompOwner-requestSended-section').hide();\r\n }\r\n },\r\n error: () => {\r\n $('#upCompOwner-requestNotSended-section').show();\r\n $('.upCompanyOwner-resend-btn').hide();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * asCompanyInfo(): Function\r\n * @param companyInfo\r\n */\r\n asCompanyInfo(companyInfo) {\r\n const self = this;\r\n asCompanyName();\r\n asCompanySize();\r\n asCompanyWebsite();\r\n\r\n function asCompanyName() {\r\n ($('#ps-ad-companyName') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'CompanyName',\r\n name: 'ps-ad-companyName',\r\n },\r\n inputAttr: { 'aria-label': 'Company Name' },\r\n label: 'Company Name',\r\n labelMode: 'static',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'Company Name',\r\n value: companyInfo == null ? '' : companyInfo.Company_Name,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'stringLength',\r\n max: 30,\r\n message: 'Company name must contain a maximum of 30 characters',\r\n }],\r\n });\r\n }\r\n\r\n function asCompanySize() {\r\n ($('#ps-ad-companySize') as any).dxNumberBox({\r\n elementAttr: {\r\n 'data-change': 'CompanySize',\r\n name: 'ps-ad-companySize',\r\n },\r\n inputAttr: { 'aria-label': 'Company Size' },\r\n label: 'Company Size',\r\n labelMode: 'static',\r\n min: 1,\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'Company Size',\r\n value: companyInfo == null ? '' : companyInfo.Company_Size,\r\n });\r\n }\r\n\r\n function asCompanyWebsite() {\r\n ($('#ps-ad-companyWebsite') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'CompanyWebsite',\r\n name: 'ps-ad-companyWebsite',\r\n },\r\n inputAttr: { 'aria-label': 'Company Website' },\r\n label: 'Company Website',\r\n labelMode: 'static',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n placeholder: 'Company Website',\r\n value: companyInfo == null ? '' : companyInfo.Company_Website,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'stringLength',\r\n max: 60,\r\n message: 'First name must contain a maximum of 60 characters',\r\n }],\r\n });\r\n }\r\n\r\n // TODO\r\n // .dxValidator({\r\n // validationRules: [{\r\n // type: 'pattern',\r\n // pattern: '/#\\b(([\\w-]+://?|www[.])[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|/)))#iS/',\r\n // message: 'Company Website is invalid',\r\n // }],\r\n //});\r\n }\r\n\r\n /**\r\n * asDeactivateAccount(): Function\r\n */\r\n asDeactivateAccount() {\r\n $('.ps-as-delAcc-btn').off('click').on('click', () => {\r\n if ($('#deleteAccountModal').length) {\r\n ($('#deleteAccountModal') as any).modal('show');\r\n } else {\r\n $.post('/Popups/DeleteAccountModal', data => {\r\n $('body').append(data);\r\n ($('#deleteAccountModal') as any).modal('show');\r\n\r\n // TODO\r\n $('#deleteAccount-textarea').off('input').on('input', (e) => {\r\n $('.deleteAccount-btn').prop('disabled', $(e.currentTarget).val() ? false : true);\r\n })\r\n $('.deleteAccount-btn').off('click').on('click', () => {\r\n alert('Send tested!')\r\n })\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * asDetails(): Function\r\n * Get and show data for Account Details\r\n * @param userInfo\r\n * @param additionalInfo - additional User Info\r\n */\r\n asDetails(userInfo: any, additionalInfo: any) {\r\n const self = this;\r\n asPhoto();\r\n asFirstName();\r\n asLastName();\r\n asPhoneNumber();\r\n asEmail();\r\n asTitle();\r\n asGreeting();\r\n\r\n function asEmail() {\r\n ($('#ps-ad-email') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'Email',\r\n name: 'ps-ad-email',\r\n },\r\n inputAttr: { 'aria-label': 'Email' },\r\n label: 'Email',\r\n labelMode: 'static',\r\n maskInvalidMessage: 'Value is invalid',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n $.post('/ProfileAndSettings/IsTheSameEmailExistInDB', { newEmail: e.component.option('value') },\r\n (res) => {\r\n if (!res.successs) {\r\n e.component.option('maskInvalidMessage', res.message);\r\n e.component.option('validationStatus', 'invalid');\r\n } else {\r\n self.asOnValueChanged(e.component);\r\n }\r\n });\r\n },\r\n //placeholder: 'Email',\r\n value: userInfo.Email,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'email',\r\n message: 'Email is invalid',\r\n }, {\r\n type: 'required',\r\n message: 'Email is required',\r\n }, {\r\n type: 'stringLength',\r\n max: 40,\r\n message: 'First name must contain a maximum of 40 characters',\r\n }],\r\n });\r\n }\r\n\r\n function asFirstName() {\r\n ($('#ps-ad-firstName') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'FirstName',\r\n name: 'ps-ad-firstName',\r\n },\r\n inputAttr: { 'aria-label': 'First Name' },\r\n label: 'First Name',\r\n labelMode: 'static',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'First Name',\r\n value: userInfo.FirstName,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'First Name is required',\r\n }, {\r\n type: 'stringLength',\r\n max: 20,\r\n message: 'First name must contain a maximum of 20 characters',\r\n }, {\r\n type: 'stringLength',\r\n min: 2,\r\n message: 'First name must have at least 2 characters',\r\n }],\r\n });\r\n }\r\n\r\n function asGreeting() {\r\n ($('#ps-ad-greeting') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'Greeting',\r\n name: 'ps-ad-greeting',\r\n },\r\n inputAttr: { 'aria-label': 'Greeting' },\r\n label: 'Greeting',\r\n labelMode: 'static',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n const greetingValue = e.component.option('value');\r\n if (!greetingValue) e.component.option('value', 'Let\\'s rock it today!');\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'Greeting',\r\n value: additionalInfo == null || additionalInfo.Greeting == null ? 'Let\\'s rock it today!' : additionalInfo.Greeting,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'stringLength',\r\n max: 70,\r\n message: 'Greeting must contain a maximum of 70 characters',\r\n }],\r\n });\r\n }\r\n\r\n function asLastName() {\r\n ($('#ps-ad-lastName') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'LastName',\r\n name: 'ps-ad-lastName',\r\n },\r\n inputAttr: { 'aria-label': 'Last Name' },\r\n label: 'Last Name',\r\n labelMode: 'static',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'Last Name',\r\n value: userInfo.LastName,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'Last Name is required',\r\n }, {\r\n type: 'stringLength',\r\n max: 20,\r\n message: 'Last name must contain a maximum of 20 characters',\r\n }, {\r\n type: 'stringLength',\r\n min: 2,\r\n message: 'Last name must have at least 2 characters',\r\n }],\r\n });\r\n }\r\n\r\n function asPhoneNumber() {\r\n ($('#ps-ad-phoneNumber') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'Phone',\r\n name: 'ps-ad-phoneNumber',\r\n },\r\n inputAttr: { 'aria-label': 'Phone Number' },\r\n label: 'Phone Number',\r\n labelMode: 'static',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n mask: '+1 (X00) 000-0000',\r\n maskInvalidMessage: 'The phone must have a correct USA phone format',\r\n maskRules: {\r\n 'X': /[02-9]/\r\n },\r\n //placeholder: 'Phone Number',\r\n value: userInfo.PhoneNumber,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'pattern',\r\n pattern: /^[02-9]\\d{9}$/,\r\n message: 'The phone must have a correct USA phone format',\r\n }],\r\n });\r\n }\r\n\r\n function asPhoto() {\r\n // === if user has photo - show photo, else - show initials\r\n if (additionalInfo !== null && additionalInfo.Image) {\r\n asPhotoShowPhoto(additionalInfo.ImageHash);\r\n } else {\r\n asPhotoShowInitials();\r\n }\r\n\r\n asPhotoAdd();\r\n asPhotoRemove();\r\n }\r\n\r\n function asPhotoAdd() {\r\n $('#addUserPhoto').off('change').on('change', (e) => {\r\n const dataImage = window['InstanceBase'].addOneFileMax2MB(e.currentTarget, 'image');\r\n\r\n $.ajax({\r\n url: '/ProfileAndSettings/ChangeImage',\r\n type: 'post',\r\n data: dataImage,\r\n contentType: false,\r\n processData: false,\r\n success: (data) => {\r\n if (data.Error) {\r\n alert(data.Message);\r\n return;\r\n }\r\n asPhotoShowPhoto(data.ImageHash);\r\n }\r\n });\r\n });\r\n }\r\n\r\n function asPhotoRemove() {\r\n $('.deleteUserPhoto-btn').off('click').on('click', () => {\r\n const obj = {\r\n callback: () => {\r\n $('.root-preloader').show();\r\n $.get('/ProfileAndSettings/RemoveImage', () => {\r\n asPhotoShowInitials();\r\n });\r\n },\r\n classYesBtn: 'as-ad-removePhoto-confirm',\r\n hideCancelIcon: true,\r\n size: 'sm',\r\n textModal: 'Are your sure remove photo?',\r\n textNoBtn: 'No',\r\n textYesBtn: 'Yes',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(obj);\r\n })\r\n }\r\n\r\n function asPhotoShowButtonDelete(show: boolean) {\r\n show ? $('.deleteUserPhoto-action-btn').show() : $('.deleteUserPhoto-action-btn').hide();\r\n $('.root-preloader').hide();\r\n }\r\n\r\n function asPhotoShowInitials() {\r\n // === if no photo - show first letters of First name and Last Name\r\n const firstFirstName = userInfo.FirstName ? userInfo.FirstName[0] : '';\r\n const firstLastName = userInfo.LastName ? userInfo.LastName[0] : '';\r\n $('.userPhoto-content').removeAttr('style').addClass('text').empty().append(`${firstFirstName}${firstLastName}`);\r\n asPhotoShowButtonDelete(false);\r\n }\r\n\r\n function asPhotoShowPhoto(hash) {\r\n $('.userPhoto-content').empty().removeClass('text')\r\n .css('background', `#eee url(/ProfileAndSettings/GetImage?hash=${hash}) no-repeat center center`)\r\n .css('background-size', 'cover');\r\n asPhotoShowButtonDelete(true);\r\n }\r\n\r\n function asTitle() {\r\n ($('#ps-ad-function') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'Function',\r\n name: 'ps-ad-function',\r\n },\r\n inputAttr: { 'aria-label': 'Title' },\r\n label: 'Title',\r\n labelMode: 'static',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'Title',\r\n value: additionalInfo == null ? '' : additionalInfo.Function,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'stringLength',\r\n max: 30,\r\n message: 'Title must contain a maximum of 30 characters',\r\n }],\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * asIsValidPassword(): Function\r\n * @param pass\r\n * @returns type boolean - true if password valid\r\n */\r\n asIsValidPassword(pass): boolean {\r\n const digit = /\\d/;\r\n const up = /[A-Z]/;\r\n const down = /[a-z]/;\r\n const sp = /[\\W]/;\r\n return digit.test(pass) && up.test(pass) && down.test(pass) && sp.test(pass);\r\n }\r\n\r\n /**\r\n * asLocation(): Function\r\n * Show contact info\r\n * @param contactInfo\r\n */\r\n asLocation(contactInfo) {\r\n const self = this;\r\n asState();\r\n asCity();\r\n asZip();\r\n //asTimeZone(data.TimeZone, data.DaylightTime);\r\n asTimeZone();\r\n\r\n function asCity() {\r\n ($('#ps-ad-city') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'City',\r\n name: 'ps-ad-city',\r\n },\r\n inputAttr: { 'aria-label': 'City' },\r\n label: 'City',\r\n labelMode: 'static',\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'City',\r\n value: contactInfo == null ? '' : contactInfo.City,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'stringLength',\r\n max: 20,\r\n message: 'City name must contain a maximum of 20 characters',\r\n }],\r\n });\r\n }\r\n\r\n function asState() {\r\n ($('#ps-ad-state') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'State',\r\n name: 'ps-ad-state',\r\n },\r\n inputAttr: { 'aria-label': 'State' },\r\n label: 'State',\r\n labelMode: 'static',\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'State',\r\n value: contactInfo == null ? '' : contactInfo.State,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'stringLength',\r\n max: 20,\r\n message: 'State name must contain a maximum of 20 characters',\r\n }],\r\n });\r\n }\r\n\r\n function asTimeZone() {\r\n\r\n const devExTimeZone: any = ($('#ps-ad-timezone') as any).dxSelectBox({\r\n dataSource: window['timezonesUSA'],\r\n displayExpr: (item) => {\r\n return item && `${item.Utc} - ${item.Name}`;\r\n },\r\n label: 'Timezone',\r\n labelMode: 'static',\r\n onValueChanged: (e) => {\r\n window['TimeZone'] = e.value;\r\n $.get('/User/TimeZone', { timeZone: e.value, daylight: devExDaylight.option('value') });\r\n },\r\n //placeholder: 'Select timezone...',\r\n value: (window['timezonesUSA'].find(item => item.TimeZoneCode == window['userTimezone'].TimeZoneCode)).TimeZoneCode ?? -35,\r\n valueExpr: 'TimeZoneCode',\r\n //width: 300,\r\n }).dxSelectBox('instance');\r\n\r\n const devExDaylight: any = ($('#ps-ad-daylight') as any).dxCheckBox({\r\n onValueChanged: (e) => {\r\n window['DaylightTime'] = e.value;\r\n $.get('/User/TimeZone', { timeZone: devExTimeZone.option('value'), daylight: e.value }, () => {\r\n window['InstanceBase'].getListTimeZonesAndUserTimezone(() => { devExTimeZone.option('dataSource', window['timezonesUSA']); }); \r\n });\r\n },\r\n text: 'Daylight saving time',\r\n value: window['userTimezone'].Daylight ?? false\r\n }).dxCheckBox('instance');\r\n }\r\n\r\n function asZip() {\r\n ($('#ps-ad-zip') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'Zip',\r\n name: 'ps-ad-zip',\r\n },\r\n inputAttr: { 'aria-label': 'Zip Code' },\r\n label: 'Zip',\r\n labelMode: 'static',\r\n maskInvalidMessage: 'Zip Code is invalid',\r\n mask: '00000',\r\n maskChar: '_',\r\n onInput: (e) => {\r\n //const valLength = e.component._value.trim().length;\r\n //if (valLength !== 5 || valLength !== 0) {\r\n // e.component.option('validationStatus', 'valid');\r\n //}\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n self.asOnValueChanged(e.component);\r\n },\r\n //placeholder: 'Zip Code',\r\n value: contactInfo == null ? '' : contactInfo.Zip,\r\n }).dxValidator({\r\n validationRules: [\r\n {\r\n message: 'Zip Code is invalid',\r\n pattern: '^[0-9]{5}(?:-[0-9]{4})?$',\r\n type: 'pattern',\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * asNotification()\r\n * @param notificationInfo\r\n */\r\n asNotification(notificationInfo) {\r\n const self = this;\r\n $('#notification1').prop('checked', self.getCookie('dontConfirmAddToCRM') ? true : false);\r\n $('#notification2').prop('checked', notificationInfo == null ? false : notificationInfo.LimitRechargeMinutes > 0);\r\n $('#notification3').prop('checked', notificationInfo == null ? false : notificationInfo.LimitRechargeLeads > 0);\r\n $('#notification4').prop('checked', notificationInfo == null ? '' : notificationInfo.ToSendMail);\r\n\r\n // $('#notification4').on('change', function () {\r\n // var b = $('#notification4').is(':checked');\r\n // $.get('/api/dashboard/ToSendNEmail', { option: !b });\r\n // });\r\n // $('#notification2').on('change', function (e) {\r\n // var enabled = !$(e.target).is(':checked');\r\n // $('.purchMinute input[name='autoLoad2']').prop('checked', !enabled);\r\n\r\n // $.get('/api/Dashboard/SaveAutoRecharge', {\r\n // type: 'Minutes',\r\n // enable: enabled\r\n // }, console.log);\r\n // });\r\n // $('#notification3').on('change', function (e) {\r\n // var enabled = !$(e.target).is(':checked');\r\n // $('.purchLead input[name='autoLoad']').prop('checked', !enabled);\r\n // $.get('/api/Dashboard/SaveAutoRecharge', {\r\n // type: 'Leads',\r\n // enable: enabled\r\n // }, console.log);\r\n // });\r\n }\r\n\r\n /**\r\n * asIsValidatePasswords(): Function\r\n * @returns false, if one of 3 password fields is invalid; else - true\r\n */\r\n asIsValidatePasswords() {\r\n if ($('#ps-ad-currentPassword').dxTextBox('instance').option('validationStatus') !== 'valid') return false;\r\n else if ($('#ps-ad-newPassword').dxTextBox('instance').option('validationStatus') !== 'valid') return false;\r\n else if ($('#ps-ad-confirmPassword').dxTextBox('instance').option('validationStatus') !== 'valid') return false;\r\n else return true;\r\n }\r\n\r\n asOnChange(target) {\r\n const data = { action: target.option('elementAttr.data-change'), value: target.option('value') };\r\n\r\n $.post('/ProfileAndSettings/Change', data, (res) => {\r\n if ($('.hd-header').is(':visible')) {\r\n if (res.action == 'FirstName') {\r\n $('.hd-header-firstName').text(data.value);\r\n }\r\n if (res.action == 'Function') {\r\n $('.hd-header-function').text(data.value);\r\n }\r\n if (res.action == 'Greeting') {\r\n $('.hd-header .userGreeting').text(data.value);\r\n $('.hd-header .userGreeting').attr('title', data.value);\r\n $('.hd-header .userGreeting').tooltip('dispose');\r\n $('.hd-header .userGreeting').tooltip('enable');\r\n }\r\n }\r\n });\r\n }\r\n\r\n asOnValueChanged(component) {\r\n const self = this;\r\n if (component.option('validationStatus') == 'valid') self.asOnChange(component);\r\n }\r\n\r\n /**\r\n * asPassword(): Function\r\n * Change user password\r\n */\r\n asPassword() {\r\n const self = this;\r\n asCurrentPassword();\r\n asNewPassword();\r\n asConfirmPassword();\r\n\r\n $('#ps-changePassword').on('click', (e: any) => {\r\n self.asChangePassword();\r\n });\r\n\r\n $('.showPassword i').hover((e) => {\r\n $(e.target).closest('.position-relative').find('.hidePassword').attr('type', 'text');\r\n $(e.target).removeClass('fa-eye-slash').addClass('fa-eye');\r\n }, () => {\r\n $('.hidePassword').attr('type', 'password');\r\n $('.showPassword i').removeClass('fa-eye').addClass('fa-eye-slash');\r\n });\r\n\r\n function asChangeDevExPasswordMode(name) {\r\n const editor = $(name).dxTextBox('instance');\r\n editor.option('mode', editor.option('mode') === 'text' ? 'password' : 'text');\r\n }\r\n\r\n function asConfirmPassword() {\r\n ($('#ps-ad-confirmPassword') as any).dxTextBox({\r\n buttons: [{\r\n location: 'after',\r\n name: 'ps-ad-confirmPassword-show',\r\n options: {\r\n icon: 'far fa-eye-slash',\r\n type: 'normal',\r\n onClick: () => asChangeDevExPasswordMode('#ps-ad-confirmPassword'),\r\n },\r\n }],\r\n elementAttr: {\r\n 'data-change': 'ConfirmPassword',\r\n name: 'ps-ad-confirmPassword',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Confirm Password',\r\n autocomplete: 'off'\r\n },\r\n mode: 'password',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n const a = $('#ps-ad-newPassword').dxTextBox('instance').option('value') == e.component.option('value');\r\n const b = e.component.option('value').length != 0;\r\n const c = self.asIsValidatePasswords();\r\n const isShow = !(a && b && c);\r\n $('#ps-changePassword').prop('disabled', isShow);\r\n },\r\n placeholder: '',\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [{\r\n comparisonTarget() {\r\n const password = $('#ps-ad-newPassword').dxTextBox('instance');\r\n if (password) {\r\n return password.option('value');\r\n }\r\n return null;\r\n },\r\n message: '\"New Password\" and \"Confirm Password\" do not match',\r\n type: 'compare',\r\n }],\r\n });\r\n }\r\n\r\n function asCurrentPassword() {\r\n ($('#ps-ad-currentPassword') as any).dxTextBox({\r\n buttons: [{\r\n location: 'after',\r\n name: 'ps-ad-currentPassword-show',\r\n options: {\r\n icon: 'far fa-eye-slash',\r\n type: 'normal',\r\n onClick: () => asChangeDevExPasswordMode('#ps-ad-currentPassword'),\r\n },\r\n }],\r\n elementAttr: {\r\n 'data-change': 'CurrentPassword',\r\n name: 'ps-ad-currentPassword',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Current Password',\r\n autocomplete: 'off'\r\n },\r\n mode: 'password',\r\n placeholder: '',\r\n value: '',\r\n }).dxValidator({\r\n type: 'custom',\r\n message: \"Your current password is not correct\"\r\n });\r\n }\r\n\r\n function asNewPassword() {\r\n ($('#ps-ad-newPassword') as any).dxTextBox({\r\n buttons: [{\r\n location: 'after',\r\n name: 'ps-ad-newPassword-show',\r\n options: {\r\n icon: 'far fa-eye-slash',\r\n type: 'normal',\r\n onClick: () => asChangeDevExPasswordMode('#ps-ad-newPassword'),\r\n },\r\n }],\r\n elementAttr: {\r\n 'data-change': 'NewPassword',\r\n name: 'ps-ad-newPassword',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'New Password',\r\n autocomplete: 'off'\r\n },\r\n mode: 'password',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n const confirmPass = $('#ps-ad-confirmPassword').dxTextBox('instance');\r\n if (e.component.option('validationStatus') === 'invalid') $('#ps-changePassword').prop('disabled', true);\r\n if (e.component.option('validationStatus') != 'invalid' && e.component.option('value').length > 0 && confirmPass.option('value') != e.component.option('value')) confirmPass.option('validationStatus', 'invalid')\r\n if (self.asIsValidatePasswords() && e.component.option('value').length > 0 && confirmPass.option('value').length > 0 && e.component.option('value') == confirmPass.option('value')) {\r\n $('#ps-changePassword').prop('disabled', false);\r\n }\r\n },\r\n placeholder: '',\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'stringLength',\r\n min: 8,\r\n message: 'Password must have at least 8 symbols',\r\n }, {\r\n type: 'custom',\r\n message: 'Password doesn\\'t meet complexity requirments',\r\n validationCallback(params) {\r\n return self.asIsValidPassword(params.value);\r\n },\r\n }, {\r\n comparisonTarget() {\r\n const currentPassword = $('#ps-ad-currentPassword').dxTextBox('instance').option('value');\r\n const newPassword = $('#ps-ad-newPassword').dxTextBox('instance').option('value');\r\n if (currentPassword != newPassword) {\r\n return newPassword;\r\n }\r\n return null;\r\n },\r\n message: 'Current password should be different from New password',\r\n type: 'compare',\r\n }],\r\n });\r\n\r\n }\r\n\r\n\r\n //$('#changePasswordPsForm input[type=\"password\"]').val('').removeClass('isInvalid');\r\n\r\n //$('#currentPassword').on('keyup', (e: any) => {\r\n // $(e.currentTarget).closest('.position-relative').find('.invalid-feedback').hide();\r\n //});\r\n\r\n //$('#newPassword').on('keyup', (e: any) => {\r\n // self.PassValidation($(e.currentTarget));\r\n //});\r\n\r\n //$('#confirmPassword').on('keyup', (e: any) => {\r\n // self.PassValidation($(e.currentTarget));\r\n //});\r\n\r\n // $('.showPassword').hover(function () {\r\n // $(this).parent().children('.hidePassword').attr('type', 'text');\r\n // $(this).children('i').removeClass('fa-eye-slash').addClass('fa-eye');\r\n // },\r\n // function () {\r\n // $('.hidePassword').attr('type', 'password');\r\n // $('.showPassword i').removeClass('fa-eye').addClass('fa-eye-slash');\r\n // });\r\n }\r\n\r\n /**\r\n * asUserType(): Function\r\n * Show user type and send request for up user to Company Owner\r\n */\r\n asUserType() {\r\n const self = this;\r\n self.asCheckIfUserSendEmailToBecomeCompanyOwner();\r\n\r\n $('.upCompOwner-request-btn, .upCompOwner-reRequest-btn').off('click').on('click', (ev) => {\r\n if ($('#upCompanyOwnerModal').length) {\r\n self.upCompanyOwnerModal(self.systemOwnerObj);\r\n } else {\r\n $.post('/Popups/upCompanyOwnerModal', data => {\r\n $('body').append(data);\r\n self.upCompanyOwnerModal(self.systemOwnerObj);\r\n });\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * convertDate(): Function\r\n * @param dateVal\r\n * @returns converted date\r\n */\r\n convertDate(dateVal) {\r\n const newDateVal = new Date(dateVal);\r\n const d = newDateVal.getDate();\r\n let m = newDateVal.getMonth();\r\n m += 1;\r\n const y = newDateVal.getFullYear();\r\n return '\\'' + m + '/' + d + '/' + y + '\\'';\r\n }\r\n\r\n /**\r\n * getCookie(): Function\r\n * @param c_name\r\n * @returns cookie\r\n */\r\n getCookie(c_name) {\r\n if (document.cookie.length > 0) {\r\n let c_start = document.cookie.indexOf(c_name + '=');\r\n if (c_start != -1) {\r\n c_start = c_start + c_name.length + 1;\r\n let c_end = document.cookie.indexOf(';', c_start);\r\n if (c_end == -1) {\r\n c_end = document.cookie.length;\r\n }\r\n return unescape(document.cookie.substring(c_start, c_end));\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n // #region ======================================= Account settings -> upCompanyOwnerModal ==================================\r\n upCompanyOwnerModal(wasSendRequest) {\r\n const self = this;\r\n if (JSON.stringify(wasSendRequest) !== '{}') {\r\n $('.upCompanyOwner-send-btn').hide();\r\n $('.upCompanyOwner-resend-btn').show();\r\n $('.upCompOwner-sendMsg').hide();\r\n $('.upCompOwner-requestForm-section').show();\r\n $('.upCompOwner-sendMsg-footer').hide();\r\n } else {\r\n $('.upCompanyOwner-resend-btn').hide();\r\n $('.upCompanyOwner-send-btn').show();\r\n $('.upCompOwner-sendMsg').show();\r\n $('.upCompOwner-requestForm-section').hide();\r\n $('.upCompOwner-sendMsg-footer').show();\r\n }\r\n\r\n ($('#upCompOwner-phone') as any).mask('+1 (999) 999-9999');\r\n\r\n self.getCompanyRolesAndTypes();\r\n\r\n // === fields actions\r\n $('#upCompOwner-companyName').on('keyup', () => {\r\n self.checkCompanyName();\r\n });\r\n $('#upCompOwner-users, #upCompOwner-companyType, #upCompOwner-role').on('keyup keydown change', () => {\r\n self.isValid();\r\n });\r\n $('#upCompOwner-companyType').off('change').on('change', (ev) => {\r\n $('#upCompOwner-companyType-other').val('');\r\n self.onChangeCompanyOwnerSelect($(ev.currentTarget), $('.upCompOwner-companyType-other'));\r\n });\r\n $('#upCompOwner-companyType-other, #upCompOwner-role-other').on('keyup', () => {\r\n self.isValid();\r\n });\r\n $('#upCompOwner-role').off('change').on('change', (ev) => {\r\n $('#upCompOwner-role-other').val('');\r\n self.onChangeCompanyOwnerSelect($(ev.currentTarget), $('.upCompOwner-role-other'));\r\n });\r\n $('#upCompOwner-phone').on('keyup', () => {\r\n const phoneRegEx = /^\\+\\s*1\\s*\\(\\s*[02-9]\\d{2}\\)\\s*\\d{3}\\s*-\\s*\\d{4}$/;\r\n if (!phoneRegEx.test(($('#upCompOwner-phone') as any).val())) {\r\n $('#upCompOwner-phone').addClass('is-invalid');\r\n $('#upCompOwner-phone-validation').show();\r\n self.isPhoneValid = false;\r\n } else {\r\n $('#upCompOwner-phone').removeClass('is-invalid');\r\n $('#upCompOwner-phone-validation').hide();\r\n self.isPhoneValid = true;\r\n }\r\n self.isValid();\r\n });\r\n\r\n $('#upCompanyOwnerModal').on('keypress', e => {\r\n if (e.keyCode == 13 && !$('#sendRequestOnPromoutingTillOwner').is(':disabled'))\r\n $('#sendRequestOnPromoutingTillOwner').trigger('click');\r\n });\r\n\r\n // === final\r\n $('#sendRequestOnPromoutingTillOwner').off('click').on('click', () => {\r\n const requestCompanyOwnerObj = {\r\n CompanyName: $('#upCompOwner-companyName').val(),\r\n CompanyRoleId: $('#upCompOwner-role').val(),\r\n CompanyTypeId: $('#upCompOwner-companyType').val(),\r\n OtharCompanyType: $('#upCompOwner-companyType-other').val(),\r\n OtharCompanyRole: $('#upCompOwner-role-other').val(),\r\n PhoneNumber: $('#upCompOwner-phone').val(),\r\n Notes: $('#upCompOwner-notes').val(),\r\n UsersCount: $('#upCompOwner-users').val(),\r\n };\r\n self.sendEmailRequestToBecomeCompanyOwner(requestCompanyOwnerObj);\r\n });\r\n $('.upCompanyOwner-send-btn').off('click').on('click', () => {\r\n $('.upCompOwner-sendMsg').hide();\r\n $('.upCompOwner-requestForm-section').show();\r\n $('.upCompOwner-sendMsg-footer').hide();\r\n });\r\n\r\n $('#upCompOwner-requestForm').on('submit', (ev) => {\r\n $('.upCompOwner-sendMsg').show();\r\n $('.upCompOwner-requestForm-section').hide();\r\n $('.upCompOwner-sendMsg-footer').show();\r\n $('#upCompOwner-companyType').val('0');\r\n $('.upCompOwner-companyType-other').hide();\r\n $('#upCompOwner-role').val('r0');\r\n $('.upCompOwner-role-other').hide();\r\n alert('Submit!');\r\n ev.preventDefault();\r\n });\r\n\r\n $('#upCompanyOwnerModal').off('hidden.bs.modal').on('hidden.bs.modal', () => {\r\n $('#upCompOwner-companyType').val('0');\r\n $('.upCompOwner-companyType-other, .upCompOwner-role-other').hide();\r\n $('#upCompOwner-phone, #upCompOwner-notes, #upCompOwner-companyName').val('');\r\n $('#sendRequestOnPromoutingTillOwner').prop('disabled', true);\r\n $('#upCompOwner-phone').removeClass('is-invalid');\r\n $('#upCompOwner-phone-validation').hide();\r\n $('#upCompOwner-companyName').removeClass('is-invalid').removeClass('is-valid');\r\n $('#upCompOwner-companyName-validation').hide();\r\n $('#upCompOwner-companyName-validation span').text('Such Company Name is already exist.')\r\n self.isPhoneValid = false;\r\n });\r\n\r\n ($('#upCompanyOwnerModal') as any).modal('show');\r\n\r\n // $('#upCompanyOwnerModal .close').on('click', function () {\r\n // ($('#upCompanyOwnerModal') as any).modal('hide');\r\n // self.ClearOwnerForm();\r\n // });\r\n // $('.upCompanyOwner-send-btn').on('click', function () {\r\n // $('.upCompOwner-sendMsg').hide();\r\n // $('.upCompOwner-requestForm-section').show();\r\n // $('#upCompanyOwnerModal .modal-footer').hide();\r\n // });\r\n\r\n //ClearOwnerForm() {\r\n // $('.upCompOwner-sendMsg').show();\r\n // $('.upCompOwner-requestForm-section').hide();\r\n // $('#upCompanyOwnerModal .modal-footer').show();\r\n // $('#upCompOwner-companyType').val('ct0');\r\n // $('.upCompOwner-companyType-other').hide().val('');\r\n // $('#upCompOwner-role').val('r0');\r\n // $('.upCompOwner-role-other').hide().val('');\r\n // $('#upCompOwner-users').val('1');\r\n // $('#upCompOwner-phone').val('');\r\n // $('#ownerEmail').val('');\r\n //}\r\n }\r\n\r\n /**\r\n * checkCompanyName(): Function\r\n */\r\n checkCompanyName() {\r\n const self = this;\r\n const name = ($('#upCompOwner-companyName').val() as any);\r\n self.isCompanyNameValid = false;\r\n if (name.length > 2) {\r\n $.ajax({\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/CheckDublicationOnCompanyName',\r\n data: { name: name },\r\n crossDomain: true,\r\n success: function (result) {\r\n if (result || (self.systemOwnerObj as any).CompanyName == name) {\r\n self.isCompanyNameValid = true;\r\n $('#upCompOwner-companyName').removeClass('is-invalid');\r\n $('#upCompOwner-companyName-validation').hide();\r\n } else {\r\n $('#upCompOwner-companyName').addClass('is-invalid');\r\n $('#upCompOwner-companyName-validation').show();\r\n $('#upCompOwner-companyName-validation span').text('Such Company Name is already exist.')\r\n }\r\n self.isValid();\r\n },\r\n error: function () {\r\n alert('request failed')\r\n }\r\n });\r\n } else {\r\n $('#upCompOwner-companyName').addClass('is-invalid');\r\n $('#upCompOwner-companyName-validation').show();\r\n $('#upCompOwner-companyName-validation span').text('min 3 letters')\r\n }\r\n self.isValid();\r\n }\r\n\r\n /**\r\n * getCompanyRolesAndTypes(): Function\r\n */\r\n getCompanyRolesAndTypes() {\r\n const self = this;\r\n $('#upCompOwner-companyType, #upCompOwner-role').prop('disabled', true);\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/GetCompanyRolesAndTypes',\r\n dataType: 'json',\r\n crossDomain: true,\r\n success: function (data) {\r\n self.writeInOptionsOnCompanySelects('upCompOwner-companyType', '-- Select Company Type --', data.result.Types, (self.systemOwnerObj as any).CompanyTypeId);\r\n $('#upCompOwner-companyType').prop('disabled', false);\r\n\r\n self.writeInOptionsOnCompanySelects('upCompOwner-role', '-- Role --', data.result.Roles, (self.systemOwnerObj as any).CompanyRoleId);\r\n $('#upCompOwner-role').prop('disabled', false);\r\n\r\n if ((self.systemOwnerObj as any).CompanyTypeId !== undefined) {\r\n $(`#upCompOwner-companyType option[value=\"${(self.systemOwnerObj as any).CompanyTypeId.toString()}\"]`).attr('selected', 'selected');\r\n $(`#upCompOwner-role option[value=\"${(self.systemOwnerObj as any).CompanyRoleId}\"]`).attr('selected', 'selected');\r\n $('#upCompOwner-users').val((self.systemOwnerObj as any).UsersCount);\r\n $('#upCompOwner-phone').val((self.systemOwnerObj as any).PhoneNumber);\r\n $('#upCompOwner-notes').val((self.systemOwnerObj as any).Notes);\r\n $('#upCompOwner-companyName').val((self.systemOwnerObj as any).CompanyName);\r\n $('.upCompOwner-sendMsg').hide();\r\n self.isPhoneValid = true;\r\n self.isValid();\r\n $('#sendRequestOnPromoutingTillOwner').prop('disabled', false);\r\n }\r\n },\r\n error: function () {\r\n alert('failed to get CompanyRoles And Types');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * onChangeCompanyOwnerSelect(): Function\r\n * @param event\r\n * @param showEl\r\n */\r\n onChangeCompanyOwnerSelect(event, showEl) {\r\n if (event.val() === 'other') {\r\n showEl.css('display', 'flex');\r\n } else {\r\n showEl.hide();\r\n }\r\n }\r\n\r\n /**\r\n * isValid(): Function\r\n * Validate upCompanyOwnerModal fields\r\n */\r\n isValid() {\r\n //checkCompanyName()\r\n let self = this;\r\n let companyType = false;\r\n let companyRole = false;\r\n\r\n if ($('#upCompOwner-companyType').val() == 'other')\r\n companyType = $('#upCompOwner-companyType-other').val() ? true : false;\r\n else\r\n companyType = $('#upCompOwner-companyType').val() != '0' ? true : false;\r\n\r\n if ($('#upCompOwner-role').val() == 'other')\r\n companyRole = $('#upCompOwner-role-other').val() ? true : false;\r\n else\r\n companyRole = $('#upCompOwner-role').val() != '0' ? true : false;\r\n\r\n self.isPhoneValid = ($('#upCompOwner-phone') as any).val().replace(/\\D/g, '').length == 11 ? true : false;\r\n\r\n if (companyType && companyRole && parseInt(($('#upCompOwner-users') as any).val()) > 0 && self.isPhoneValid && self.isCompanyNameValid) {\r\n $('#sendRequestOnPromoutingTillOwner').prop('disabled', false);\r\n } else {\r\n $('#sendRequestOnPromoutingTillOwner').prop('disabled', true);\r\n }\r\n }\r\n\r\n /**\r\n * sendEmailRequestToBecomeCompanyOwner(): Function\r\n * @param requestCompanyOwnerObj\r\n */\r\n sendEmailRequestToBecomeCompanyOwner(requestCompanyOwnerObj) {\r\n const self = this;\r\n $.ajax({\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/SendEmailRequestToBecomeCompanyOwner',\r\n data: requestCompanyOwnerObj,\r\n dataType: 'json',\r\n crossDomain: true,\r\n success: function () {\r\n alert('Success sent');\r\n ($('#upCompanyOwnerModal') as any).modal('hide');\r\n self.asCheckIfUserSendEmailToBecomeCompanyOwner();\r\n },\r\n error: function () {\r\n alert('fialed to get referral Link');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * writeInOptionsOnCompanySelects(): Function\r\n * @param selectId\r\n * @param defaultvalueSelect\r\n * @param optionValues\r\n * @param val\r\n */\r\n writeInOptionsOnCompanySelects(selectId, defaultvalueSelect, optionValues, val?: string) {\r\n const value = val;\r\n $(`#${selectId}`).find('option').remove();\r\n let options = ``;\r\n $.each(optionValues, function (_, v) {\r\n if (v.IsDefault || value == v.Id) {\r\n options += ``;\r\n }\r\n });\r\n options += '';\r\n $(`#${selectId}`).append(options);\r\n $(`#${selectId}`).prop('disabled', false);\r\n }\r\n // #endregion\r\n\r\n // #endregion\r\n\r\n // #region ======================================= Email settings ==================================\r\n /**\r\n * emailSettings(): Function\r\n */\r\n emailSettings() {\r\n const self = this;\r\n //($('#ps-es-emailLog-tab') as any).tab('show');\r\n // $('#tab-row-emailSettings').off('shown.bs.tab').on('shown.bs.tab', e => {\r\n // let selected = $('#tab-row-emailSettings .nav-link.active').attr('id');\r\n // if (selected != 'ps-es-emailLog-tab') {\r\n // $('#ps-es-emailLog-tab').click();\r\n // }\r\n // });\r\n self.esEmailsLogs();\r\n self.esTemplates();\r\n self.esNewTemplate();\r\n self.esEditTemplate();\r\n self.esEmailSettings();\r\n\r\n if (sessionStorage.getItem('newEmailTemplate')) {\r\n ($('#ps-es-newEmailTemplate-tab') as any).tab('show');\r\n sessionStorage.removeItem('newEmailTemplate');\r\n } else {\r\n ($('#ps-es-emailLog-tab') as any).tab('show');\r\n }\r\n\r\n $('#tab-row-emailSettings .nav-link').on('click', (e) => {\r\n if (!$(e.target).hasClass('ps-es-editEmailTemplate-tab')) $('#ps-es-editEmailTemplate-tab').hide();\r\n });\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n }\r\n\r\n /**\r\n * esEditTemplate(): Function\r\n * Edit email template\r\n */\r\n esEditTemplate() {\r\n const self = this;\r\n $('#ps-es-editEmailTemplate-tab').off('show.bs.tab').on('show.bs.tab', (e) => {\r\n $(e.target).data('id', window['editEmailTemplate'].id);\r\n\r\n self.psLoadTabContent('#ps-es-editEmailTemplate-content', 'SettingsEmailEditTemplate', () => {\r\n ($('#editEmailTemplate-name') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'editEmailTemplateName',\r\n name: 'editEmailTemplate-name',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Edit Email Template Name',\r\n autocomplete: 'off'\r\n },\r\n mode: 'text',\r\n onInput: () => {\r\n self.esNewEditEmailTemplateFieldsValidation('edit');\r\n },\r\n onValueChanged: () => {\r\n self.esNewEditEmailTemplateFieldsValidation('edit');\r\n },\r\n placeholder: '',\r\n value: window['editEmailTemplate'].name,\r\n });\r\n\r\n ($('#editEmailTemplate-subject') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'editEmailTemplateSubject',\r\n name: 'editEmailTemplate-subject',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Edit Email Template Subject',\r\n autocomplete: 'off'\r\n },\r\n mode: 'text',\r\n onInput: () => {\r\n self.esNewEditEmailTemplateFieldsValidation('edit');\r\n },\r\n onValueChanged: () => {\r\n self.esNewEditEmailTemplateFieldsValidation('edit');\r\n },\r\n placeholder: '',\r\n value: window['editEmailTemplate'].object,\r\n });\r\n\r\n self.esNewEditEmailTemplateEditor('edit');\r\n self.esNewEditEmailTemplateFieldsValidation('edit');\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n\r\n $('.btn-editEmailTemplate-save').on('click', (e) => {\r\n e.preventDefault();\r\n self.esSaveEmailTemplate('edit');\r\n });\r\n })\r\n });\r\n\r\n $('#ps-es-editEmailTemplate-tab').off('hidden.bs.tab').on('hidden.bs.tab', (e) => {\r\n delete window['editEmailTemplate'];\r\n });\r\n }\r\n\r\n /**\r\n * esEmailSettings(): Function\r\n */\r\n esEmailSettings() {\r\n const self = this;\r\n $('#ps-es-emailSettings-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-es-emailSettings-content', 'SettingsEmailSettings', () => {\r\n $('#smtpProtocol').dxTextBox({\r\n onContentReady: () => {\r\n $('.root-preloader').hide();\r\n }\r\n })\r\n })\r\n })\r\n }\r\n\r\n /**\r\n * esEmailsLogs(): Function\r\n * Load page Email Log from Settings - Email Settings\r\n */\r\n esEmailsLogs() {\r\n const self = this;\r\n let lastEmailLogsType = undefined;\r\n $('#ps-es-emailLog-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-es-emailLog-content', 'SettingsEmailLogs', () => {\r\n window['InstanceBase'].dateRangeWithYearWeekDates('.ps-es-emailLogs', gvEmailLogsUpdate);\r\n gvEmailLogs(gvEmailLogsSource());\r\n\r\n $('.ps-es-emailLogs-day-btn').off('click').on('click', () => {\r\n self.psDateRangeTodayBtn('.ps-es-emailLogs');\r\n });\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n })\r\n });\r\n\r\n //($('#ps-es-emalLogs-startDate') as any).dxDateBox({\r\n // onValueChanged: (e) => {\r\n // ($('#ps-es-emalLogs-endDate') as any).dxDateBox('option', 'min', e.value);\r\n // if (!lastEmailLogsType) gvEmailLogsUpdate();\r\n // },\r\n // max: new Date(),\r\n // pickerType: 'calendar',\r\n // value: new Date(),\r\n //});\r\n\r\n //($('#ps-es-emalLogs-endDate') as any).dxDateBox({\r\n // onValueChanged: () => {\r\n // gvEmailLogsUpdate();\r\n // },\r\n // min: ($('#ps-es-emalLogs-startDate') as any).dxDateBox('option', 'value'),\r\n // // max: new Date(),\r\n // pickerType: 'calendar',\r\n // value: new Date(),\r\n //});\r\n\r\n\r\n //$('.ps-es-emailLogs-day-btn').off('click').on('click', () => {\r\n // const start = new Date();\r\n // lastEmailLogsType = 'day';\r\n // ($('#ps-es-emalLogs-startDate') as any).dxDateBox('option', 'value', start);\r\n\r\n // const end = new Date();\r\n // ($('#ps-es-emalLogs-endDate') as any).dxDateBox('option', 'value', end);\r\n //});\r\n\r\n //$('.ps-es-emalLogs-week-btn').off('click').on('click', () => {\r\n // const start = new Date();\r\n // start.setDate(start.getDate() - start.getDay() + 1);\r\n // lastEmailLogsType = 'week';\r\n // ($('#ps-es-emalLogs-startDate') as any).dxDateBox('option', 'value', start);\r\n\r\n // const end = new Date();\r\n // end.setDate(end.getDate() - end.getDay() + 7);\r\n // ($('#ps-es-emalLogs-endDate') as any).dxDateBox('option', 'value', end);\r\n //});\r\n\r\n //$('.ps-es-emalLogs-month-btn').off('click').on('click', () => {\r\n // const start = new Date();\r\n // start.setDate(1);\r\n // lastEmailLogsType = 'month';\r\n // ($('#ps-es-emalLogs-startDate') as any).dxDateBox('option', 'value', start);\r\n\r\n // let end = new Date();\r\n // end = new Date(end.getFullYear(), end.getMonth() + 1, 0);\r\n // ($('#ps-es-emalLogs-endDate') as any).dxDateBox('option', 'value', end);\r\n //})\r\n\r\n function gvEmailLogs(source) {\r\n $('#gvEmailLogs').dxDataGrid({\r\n dataSource: source,\r\n columns: [\r\n {\r\n cellTemplate: (container, options) => {\r\n const data = options.data.Date;\r\n container.html(window['moment'](data).format('L, LT'));\r\n },\r\n dataField: 'Date',\r\n // dataType: 'date',\r\n sortOrder: 'desc',\r\n width: 135,\r\n },\r\n {\r\n caption: 'From',\r\n dataField: 'FromEmail'\r\n },\r\n {\r\n caption: 'To',\r\n dataField: 'Email'\r\n },\r\n {\r\n caption: 'To CC',\r\n dataField: 'CCEmail'\r\n },\r\n {\r\n dataField: 'Subject'\r\n },\r\n // {\r\n // cellTemplate: (e, d) => {\r\n // let body = $('
    ' + d.data.Body + '
    ');\r\n // let div = $('').text(body.text());\r\n // return div;\r\n // },\r\n // dataField: 'Body',\r\n // }\r\n ],\r\n filterRow: {\r\n applyFilter: 'onClick',\r\n visible: true\r\n },\r\n height: '100%',\r\n onCellPrepared: (e) => {\r\n if (e.column.type == 'selection' && e.rowType == 'header') {\r\n const div = $('
    ');\r\n const del = $('');\r\n const select = e.cellElement.find('.dx-select-checkbox');\r\n\r\n del.off('click').on('click', (e) => {\r\n const removedIds = [];\r\n const gvEmailLogs = ($('#gvEmailLogs') as any).dxDataGrid('instance');\r\n\r\n $.each(gvEmailLogs.getSelectedRowKeys(), (i, v) => {\r\n removedIds.push(v.Id);\r\n });\r\n\r\n $.post('/Email/RemoveSentEmails', { ids: removedIds }, (data) => {\r\n $('.notification-message-remove-btn').hide()\r\n gvEmailLogs.refresh();\r\n });\r\n });\r\n\r\n div.append(select).append(del);\r\n div.on('dxclick', a => {\r\n a.stopPropagation();\r\n });\r\n e.cellElement.append(div);\r\n ($('[data-bs-toggle=\"tooltip\"]') as any).tooltip('enable');\r\n }\r\n },\r\n onContentReady: (e) => {\r\n window['InstanceBase'].hideFilterIconOnDevExGrid(e);\r\n\r\n window['fixShowLinesDevExGrid'](e.element[0], true);\r\n\r\n gvEmailLogsAddTooltip();\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('enable');\r\n\r\n if (!window['setActiveTodayBtn']) $(`.ps-es-emailLogs .settings-dateRange-btn`).removeClass('active');\r\n\r\n $('.root-preloader').hide();\r\n },\r\n onEditorPreparing: (ev) => {\r\n window['InstanceBase'].applyFilterOnDevExGrid(ev);\r\n },\r\n onSelectionChanged: (e) => {\r\n const allSelectedRowKeys = e.selectedRowKeys;\r\n allSelectedRowKeys.length > 0 ? $('.gvEmailLogs-moveIcons .fa-trash').css('display', 'inline-block') : $('.gvEmailLogs-moveIcons .fa-trash').hide();\r\n },\r\n pager: {\r\n allowedPageSizes: [25, 50, 100],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n pageSize: 25\r\n },\r\n remoteOperations: {\r\n grouping: true,\r\n groupPaging: true,\r\n filtering: true,\r\n paging: true,\r\n sorting: true,\r\n summary: true\r\n },\r\n rowAlternationEnabled: true,\r\n scrolling: {\r\n columnRenderingMode: 'standard',\r\n mode: 'standard',\r\n preloadEnabled: false,\r\n rowRenderingMode: 'standard',\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n showScrollbar: 'onHover',\r\n useNative: 'auto'\r\n },\r\n selection: {\r\n allowSelectAll: true,\r\n deferred: false,\r\n mode: 'multiple',\r\n selectAllMode: 'allPages',\r\n showCheckBoxesMode: 'onClick'\r\n },\r\n showBorders: true,\r\n showColumnLines: true,\r\n sorting: {\r\n mode: 'single'\r\n },\r\n });\r\n }\r\n\r\n function gvEmailLogsAddTooltip() {\r\n const body = $('#gvEmailLogs').find('.text-ellipsis');\r\n for (let i = 0; i < body.length - 1; i++) {\r\n const val = $(body[i]).text();\r\n if ($(body[i]).parent().width() < $(body[i]).width()) {\r\n $(body[i]).attr('title', val);\r\n }\r\n }\r\n }\r\n\r\n function gvEmailLogsSource() {\r\n //const startDateEmailLogs = window['moment'](($('#ps-es-emalLogs-startDate') as any).dxDateBox('option', 'value')).startOf('day').toDate();\r\n //const endDateEmailLogs = window['moment'](($('#ps-es-emalLogs-endDate') as any).dxDateBox('option', 'value')).endOf('day').toDate();\r\n const startDateEmailLogs = ($('.ps-es-emailLogs .ywftDateRange-devExDateFrom') as any).dxDateBox('option', 'value');\r\n const endDateEmailLogs = ($('.ps-es-emailLogs .ywftDateRange-devExDateTo') as any).dxDateBox('option', 'value');\r\n const source = window['DevExpress'].data.AspNet.createStore({\r\n loadMethod: 'POST',\r\n loadParams: {\r\n offset: window['userTimezone'].Offset,\r\n start: window['moment'](startDateEmailLogs).format('MM/DD/YYYY') ?? window['moment'](new Date()).format('MM/DD/YYYY'),\r\n end: window['moment'](endDateEmailLogs).format('MM/DD/YYYY') ?? window['moment'](new Date()).format('MM/DD/YYYY')\r\n },\r\n loadUrl: '/Email/GetSentEmails',\r\n });\r\n return source\r\n }\r\n\r\n function gvEmailLogsUpdate(changedDate = true) {\r\n $('.root-preloader').show();\r\n if (changedDate) {\r\n $('.ps-es-emailLogs-dateRange-btns .settings-dateRange-btn').removeClass('active');\r\n if (lastEmailLogsType) {\r\n $(`.ps-es-emalLogs-${lastEmailLogsType}-btn`).addClass('active');\r\n lastEmailLogsType = undefined;\r\n }\r\n }\r\n\r\n const source = gvEmailLogsSource();\r\n $('#gvEmailLogs').dxDataGrid('instance').option('dataSource', source);\r\n $('#gvEmailLogs').dxDataGrid('instance').refresh(true);\r\n }\r\n }\r\n\r\n /**\r\n * esNewEditEmailTemplateEditor(): Function\r\n * @param type - new or edit\r\n */\r\n esNewEditEmailTemplateEditor(type) {\r\n ($(`#${type}EmailTemplate-htmlEditor`) as any).dxHtmlEditor({\r\n height: '100%',\r\n imageUpload: {\r\n tabs: ['file', 'url'],\r\n fileUploadMode: 'base64',\r\n },\r\n mediaResizing: {\r\n enabled: true\r\n },\r\n onContentReady: (e) => {\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('enable');\r\n $('.root-preloader').hide();\r\n },\r\n onValueChanged: (e) => {\r\n console.log('chw', e)\r\n },\r\n toolbar: {\r\n items: [\r\n 'undo', 'redo', 'separator',\r\n {\r\n name: 'size',\r\n acceptedValues: ['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\r\n },\r\n {\r\n name: 'font',\r\n acceptedValues: ['Arial', 'Courier New', 'Georgia', 'Impact', 'Lucida Console', 'Tahoma', 'Times New Roman', 'Verdana']\r\n },\r\n 'separator', 'bold', 'italic', 'strike', 'underline', 'separator',\r\n 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'separator',\r\n 'orderedList', 'bulletList', 'separator',\r\n {\r\n name: 'header',\r\n acceptedValues: [false, 1, 2, 3, 4, 5]\r\n }, 'separator',\r\n 'color', 'background', 'separator',\r\n 'link', 'image', 'separator',\r\n 'clear', 'codeBlock', 'blockquote', 'separator',\r\n 'insertTable', 'deleteTable',\r\n 'insertRowAbove', 'insertRowBelow', 'deleteRow',\r\n 'insertColumnLeft', 'insertColumnRight', 'deleteColumn',\r\n 'separator', 'variable'\r\n ]\r\n },\r\n value: type == 'edit' ? window['editEmailTemplate'].template : '',\r\n variables: {\r\n dataSource: ['FirstName', 'LastName', 'Business Name'],\r\n escapeChar: ['{', '}']\r\n }\r\n }).dxHtmlEditor('instance');\r\n }\r\n\r\n /**\r\n * esNewEditEmailTemplateFieldsValidation(): Function\r\n * @param mode - new or edit\r\n */\r\n esNewEditEmailTemplateFieldsValidation(type) {\r\n const nameVal = $(`#${type}EmailTemplate-name`).dxTextBox('instance').option('text');\r\n const subjectVal = $(`#${type}EmailTemplate-subject`).dxTextBox('instance').option('text');\r\n $(`.btn-${type}EmailTemplate-save`).prop('disabled', !(nameVal.length && subjectVal.length));\r\n }\r\n\r\n /**\r\n * esNewTemplate(): Function\r\n * Load page New Template from Settings - Email Settings\r\n */\r\n esNewTemplate() {\r\n const self = this;\r\n $('#ps-es-newEmailTemplate-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-es-newEmailTemplate-content', 'SettingsEmailNewTemplate', () => {\r\n ($('#newEmailTemplate-name') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'newEmailTemplateName',\r\n name: 'newEmailTemplate-name',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'New Email Template Name',\r\n autocomplete: 'off'\r\n },\r\n mode: 'text',\r\n onInput: () => {\r\n self.esNewEditEmailTemplateFieldsValidation('new');\r\n },\r\n onValueChanged: (e) => {\r\n self.esNewEditEmailTemplateFieldsValidation('new');\r\n },\r\n placeholder: '',\r\n value: '',\r\n });\r\n\r\n ($('#newEmailTemplate-subject') as any).dxTextBox({\r\n elementAttr: {\r\n 'data-change': 'newEmailTemplateSubject',\r\n name: 'newEmailTemplate-subject',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'New Email Template Subject',\r\n autocomplete: 'off'\r\n },\r\n mode: 'text',\r\n onInput: () => {\r\n self.esNewEditEmailTemplateFieldsValidation('new');\r\n },\r\n onValueChanged: (e) => {\r\n self.esNewEditEmailTemplateFieldsValidation('new');\r\n },\r\n placeholder: '',\r\n value: '',\r\n });\r\n\r\n self.esNewEditEmailTemplateEditor('new');\r\n self.esNewEditEmailTemplateFieldsValidation('new');\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n\r\n $('.btn-newEmailTemplate-save').off('click').on('click', (e) => {\r\n e.preventDefault();\r\n self.esSaveEmailTemplate('new');\r\n });\r\n })\r\n });\r\n }\r\n\r\n /**\r\n * esSaveEmailTemplate(): Function\r\n * Save new or edit email template\r\n * @param type - new or edit\r\n */\r\n esSaveEmailTemplate(type) {\r\n const data = {\r\n Description: $(`#${type}EmailTemplate-subject`).dxTextBox('instance').option('value'),\r\n Name: $(`#${type}EmailTemplate-name`).dxTextBox('instance').option('value'),\r\n Template: ($(`#${type}EmailTemplate-htmlEditor`) as any).dxHtmlEditor('instance').option('value')\r\n };\r\n if (type === 'edit') data['Id'] = $('#ps-es-editEmailTemplate-tab').data('id');\r\n\r\n $.post(`/Email/${type === 'new' ? 'Add' : 'Edit'}Template`, data, () => {\r\n $('.root-preloader').show();\r\n ($('#ps-es-emailTemplates-tab') as any).tab('show');\r\n try {\r\n $('#gvEmailTemplates').dxDataGrid('instance').refresh(true);\r\n } catch (ex) { }\r\n\r\n $(`#${type}EmailTemplate-name`).dxTextBox('option', 'value', '');\r\n $(`#${type}EmailTemplate-subject`).dxTextBox('option', 'value', '');\r\n ($(`#${type}EmailTemplate-htmlEditor`) as any).dxHtmlEditor('option', 'value', '');\r\n });\r\n }\r\n\r\n /**\r\n * esTemplates()\r\n * Load page Templates with grid width Email tempaltes from Settings - Email Settings\r\n */\r\n esTemplates() {\r\n const self = this;\r\n $('#ps-es-emailTemplates-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-es-emailTemplates-content', 'SettingsEmailTemplates', () => {\r\n $('#gvEmailTemplates').dxDataGrid({\r\n dataSource: window['DevExpress'].data.AspNet.createStore({\r\n loadMethod: 'POST',\r\n loadUrl: '/Email/GetTemplates',\r\n //onLoaded: (res) => {\r\n //}\r\n }),\r\n columns: [{\r\n dataField: 'Name'\r\n },\r\n {\r\n caption: 'Subject',\r\n dataField: 'Description'\r\n },\r\n {\r\n caption: 'Default',\r\n cellTemplate: (container, options) => {\r\n container.addClass('text-center');\r\n ($(`
    `) as any).dxCheckBox({\r\n onValueChanged: (e) => {\r\n const checkboxes = $('#gvEmailTemplates').find('.gvEmailTemplates-defaultTemplate');\r\n if (e.value === true) {\r\n $.get('/Email/SetDefaultTemplate', { Id: options.data.Id }, () => {\r\n checkboxes.each((i, el) => {\r\n if ($(el).attr('data-id') != `${options.data.Id}`) {\r\n ($(el) as any).dxCheckBox('instance').option('value', false);\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n let isDefault = false;\r\n for (let i = 0; i < checkboxes.length; i++) {\r\n if (($(checkboxes[i]) as any).dxCheckBox('instance').option('value') === true) {\r\n isDefault = true;\r\n break;\r\n }\r\n }\r\n if (!isDefault) $.get('/Email/SetDefaultTemplate', { Id: 0 });\r\n }\r\n },\r\n value: options.data.Default,\r\n }).appendTo(container);\r\n },\r\n width: 60,\r\n },\r\n {\r\n cellTemplate: (e, d) => {\r\n if (d.data.Id && !d.data.IsRAI) {\r\n const div = $('
    ');\r\n const editBtn = $('');\r\n const delBtn = $('');\r\n div.append(editBtn);\r\n div.append(delBtn);\r\n\r\n editBtn.on('click', () => {\r\n //$('#ps-es-editEmailTemplate-tab').data('id', d.data.Id);\r\n //$('#editEmailTemplate-name').dxTextBox('instance').option('value', d.data.Name);\r\n //$('#editEmailTemplate-subject').dxTextBox('instance').option('value', d.data.Description);\r\n //self.esEditTemplate();\r\n $.get('/Email/GetTemplate', { id: d.data.Id }, (data) => {\r\n window['editEmailTemplate'] = {\r\n id: d.data.Id,\r\n name: d.data.Name,\r\n object: d.data.Description,\r\n template: data.Template\r\n };\r\n //($('#editEmailTemplate-htmlEditor') as any).dxHtmlEditor('option', 'value', data.Template);\r\n $('#ps-es-editEmailTemplate-tab').show();\r\n ($('#ps-es-editEmailTemplate-tab') as any).tab('show');\r\n });\r\n });\r\n\r\n delBtn.on('click', () => {\r\n // if ($('#delTemplate').length) {\r\n // f($('#delTemplate'), e.target);\r\n // }\r\n // else {\r\n // let div = $('
    ');\r\n\r\n // $('body').append(div);\r\n // f(div, e.target);\r\n // }\r\n const objModal = {\r\n callback: DeleteEmailTemplate,\r\n classYesBtn: 'deleteEmailTemplate',\r\n textModal: `Do you want to delete template ${d.data.Name}?`,\r\n textNoBtn: 'No',\r\n textYesBtn: 'Yes',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(objModal);\r\n })\r\n return div;\r\n\r\n function DeleteEmailTemplate() {\r\n $.post('/Email/DeleteTemplate', { Id: d.data.Id }, () => {\r\n $('#gvEmailTemplates').dxDataGrid('refresh');\r\n // $('.sendEmail-template').dxSelectBox({\r\n // dataSource: window['DevExpress'].data.AspNet.createStore({\r\n // loadUrl: '/Email/GetTemplates',\r\n // loadMethod: 'POST'\r\n // }),\r\n // displayExpr: 'Name',\r\n // valueExpr: 'Id',\r\n // });\r\n });\r\n }\r\n }\r\n },\r\n cssClass: 'buttons',\r\n width: 70,\r\n }],\r\n height: '100%',\r\n onContentReady: (e) => {\r\n window['fixShowLinesDevExGrid'](e.element[0], true);\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('enable');\r\n $('.root-preloader').hide();\r\n },\r\n pager: {\r\n allowedPageSizes: [25, 50, 100],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n pageSize: 25\r\n },\r\n rowAlternationEnabled: true,\r\n selection: {\r\n mode: 'single',\r\n },\r\n showBorders: true\r\n });\r\n })\r\n })\r\n }\r\n // #endregion\r\n\r\n // #region ======================================= General settings ==================================\r\n /**\r\n * generalSettings(): Function\r\n * Load and show General Settings\r\n */\r\n generalSettings() {\r\n $('.ps-gs-saveEvents-btn').prop('disabled', true);\r\n\r\n //let b = false; // ?!\r\n\r\n $.get('/User/Info', (data) => {\r\n window['EmailScore'] = data.EmailScore;\r\n\r\n /*gsTimeZone(data.TimeZone, data.DaylightTime);*/\r\n gsEmailScore(data.EmailScore);\r\n gsTimeMyDBEvents(data.TimeRemoveMy);\r\n gsTimeCompanyDBTabEvents(data.TimeRemoveCompany);\r\n gsTimeCompanyDBNotificationsEvents(data.NotificationTime);\r\n gsClicksAmountCompanyDBEvents(data.NotificationCount);\r\n\r\n $('.root-preloader').hide();\r\n });\r\n\r\n function gsClicksAmountCompanyDBEvents(countNofifications) {\r\n const devExClicksAmountCompanyDBEvents: any = ($('#ps-gs-eventsCompanyDBAmount') as any).dxNumberBox({\r\n format: '00',\r\n max: 10,\r\n min: 1,\r\n onValueChanged: () => {\r\n $('.ps-gs-eventsCompanyDBAmount-btn').prop('disabled', false);\r\n },\r\n showSpinButtons: true,\r\n step: 1,\r\n value: countNofifications ?? 5,\r\n width: 100,\r\n }).dxNumberBox('instance');\r\n\r\n $('.ps-gs-eventsCompanyDBAmount-btn').off('click').on('click', (ev) => {\r\n $.get('/User/NotificationCount', { value: devExClicksAmountCompanyDBEvents.option('value') }, () => {\r\n gsSaveChangesOnEvents(ev.target);\r\n });\r\n });\r\n }\r\n\r\n function gsEmailScore(emailScore) {\r\n const devExEmailScore: any = ($('#ps-gs-emailScore') as any).dxNumberBox({\r\n format: '0.00',\r\n max: 1,\r\n min: 0,\r\n onValueChanged: (e) => {\r\n window['EmailScore'] = e.value;\r\n $.get('/User/EmailScore', { score: e.value });\r\n },\r\n showSpinButtons: true,\r\n step: 0.01,\r\n value: emailScore ?? .1,\r\n width: 100,\r\n }).dxNumberBox('instance');\r\n }\r\n\r\n function gsSaveChangesOnEvents(ev) {\r\n const msg = $(ev).parent().find('.ps-gs-events-saved');\r\n\r\n msg.addClass('active');\r\n $(ev).prop('disabled', true);\r\n setTimeout(() => {\r\n msg.removeClass('active');\r\n }, 1500)\r\n }\r\n\r\n function gsTimeCompanyDBNotificationsEvents(timeNotifications) {\r\n const devExTimeCompanyDBNotificationsEvents: any = ($('#ps-gs-eventsCompanyDBNofitication') as any).dxNumberBox({\r\n format: '00',\r\n max: 30,\r\n min: 1,\r\n onValueChanged: () => {\r\n $('.ps-gs-eventsCompanyDBNofitication-btn').prop('disabled', false);\r\n },\r\n showSpinButtons: true,\r\n step: 1,\r\n value: timeNotifications ?? 30,\r\n width: 100,\r\n }).dxNumberBox('instance');\r\n\r\n $('.ps-gs-eventsCompanyDBNofitication-btn').off('click').on('click', (ev) => {\r\n $.get('/User/NotificationTime', { value: devExTimeCompanyDBNotificationsEvents.option('value') }, () => {\r\n gsSaveChangesOnEvents(ev.target);\r\n });\r\n });\r\n }\r\n\r\n function gsTimeCompanyDBTabEvents(timeEvents) {\r\n const devExTimeCompanyDBTabEvents: any = ($('#ps-gs-eventsCompanyDB') as any).dxNumberBox({\r\n format: '00',\r\n max: 30,\r\n min: 1,\r\n onValueChanged: () => {\r\n $('.ps-gs-eventsCompanyDB-btn').prop('disabled', false);\r\n },\r\n showSpinButtons: true,\r\n step: 1,\r\n value: timeEvents ?? 30,\r\n width: 100,\r\n }).dxNumberBox('instance');\r\n\r\n $('.ps-gs-eventsCompanyDB-btn').off('click').on('click', (ev) => {\r\n $.get('/User/TimeRemove/company', { value: devExTimeCompanyDBTabEvents.option('value') }, () => {\r\n gsSaveChangesOnEvents(ev.target);\r\n });\r\n });\r\n }\r\n\r\n function gsTimeMyDBEvents(timeEvents) {\r\n const devExTimeMyDBEvents: any = ($('#ps-gs-eventsMyDB') as any).dxNumberBox({\r\n format: '00',\r\n max: 30,\r\n min: 1,\r\n onValueChanged: () => {\r\n $('.ps-gs-eventsMyDB-btn').prop('disabled', false);\r\n },\r\n showSpinButtons: true,\r\n step: 1,\r\n value: timeEvents ?? 30,\r\n width: 100,\r\n }).dxNumberBox('instance');\r\n\r\n $('.ps-gs-eventsMyDB-btn').off('click').on('click', (ev) => {\r\n $.get('/User/TimeRemove/my', { value: devExTimeMyDBEvents.option('value') }, () => {\r\n gsSaveChangesOnEvents(ev.target);\r\n });\r\n });\r\n }\r\n\r\n }\r\n // #endregion\r\n\r\n // #region ======================================= Payment Method Settings ==================================\r\n /**\r\n * paymentMethodSettings(): Function\r\n * Load and show PaymentMethod\r\n * Show payment cards/accounts (Credit card, PayPal, Personal)\r\n * Add new payment card/account\r\n */\r\n paymentMethodSettings() {\r\n const self = this;\r\n self.isPhoneValid = false;\r\n self.isFormInvalid = false;\r\n\r\n $.post('/UserLeads/State', data => {\r\n self.paymentStatesData = data;\r\n self.pmsCreditCard();\r\n //self.pmsPaypal();\r\n self.pmsPersonal();\r\n });\r\n }\r\n\r\n /**\r\n * pmsAddCreditCard(): Function\r\n * Set and show fields on Add new credit card\r\n */\r\n pmsAddCreditCard() {\r\n const self = this;\r\n pmsCreditCardName();\r\n pmsCreditCardNumber();\r\n pmsCreditCardExpDate();\r\n pmsCreditCardCVVCode();\r\n pmsCreditCardFirstName();\r\n pmsCreditCardLastName();\r\n pmsCreditCardAddress();\r\n pmsCreditCardZipCode();\r\n pmsCreditCardCity();\r\n pmsCreditCardState();\r\n pmsAddCreditCardActions();\r\n pmsCreditCardSave();\r\n\r\n function pmsAddCreditCardActions() {\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n\r\n $('.ps-pms-creditCard-cvvCode-whatIs').hover(() => {\r\n $('.ps-pms-creditCard-cvvCode-help').css({ 'opacity': '1', 'z-index': '50' });\r\n }, () => {\r\n $('.ps-pms-creditCard-cvvCode-help').css({ 'opacity': '0', 'z-index': '-1' });\r\n })\r\n\r\n $('#ps-pms-creditCard-addCard-collapse').on('hidden.bs.collapse', () => {\r\n $('#ps-pms-creditCard-address').dxTextBox('instance').option('value', '');\r\n $('#ps-pms-creditCard-city').dxTextBox('instance').option('value', '');\r\n $('#ps-pms-creditCard-cvvCode').dxTextBox('instance').option('value', '');\r\n ($('#ps-pms-creditCard-expDate') as any).dxDateBox('instance').option('value', new Date);\r\n $('#ps-pms-creditCard-firstName').dxTextBox('instance').option('value', '');\r\n $('#ps-pms-creditCard-lastName').dxTextBox('instance').option('value', '');\r\n $('#ps-pms-creditCard-name').dxTextBox('instance').option('value', '');\r\n $('#ps-pms-creditCard-number').dxTextBox('instance').option('value', '');\r\n ($('#ps-pms-creditCard-state') as any).dxSelectBox('instance').option('value', '');\r\n $('#ps-pms-creditCard-zipCode').dxTextBox('instance').option('value', '');\r\n\r\n $('#ps-pms-creditCard-address').dxTextBox('instance').option('validationStatus', 'valid');\r\n $('#ps-pms-creditCard-city').dxTextBox('instance').option('validationStatus', 'valid');\r\n $('#ps-pms-creditCard-cvvCode').dxTextBox('instance').option('validationStatus', 'valid');\r\n $('#ps-pms-creditCard-firstName').dxTextBox('instance').option('validationStatus', 'valid');\r\n $('#ps-pms-creditCard-lastName').dxTextBox('instance').option('validationStatus', 'valid');\r\n $('#ps-pms-creditCard-name').dxTextBox('instance').option('validationStatus', 'valid');\r\n $('#ps-pms-creditCard-number').dxTextBox('instance').option('validationStatus', 'valid');\r\n ($('#ps-pms-creditCard-state') as any).dxSelectBox('instance').option('validationStatus', 'valid');\r\n $('#ps-pms-creditCard-zipCode').dxTextBox('instance').option('validationStatus', 'valid');\r\n\r\n $('#ps-pms-setDefaultPayment').prop('checked', false);\r\n });\r\n }\r\n\r\n function pmsCreditCardAddress() {\r\n ($('#ps-pms-creditCard-address') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSCreditCardAddress',\r\n },\r\n inputAttr: { 'aria-label': 'Address' },\r\n maxLength: 100,\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: () => {\r\n //$(document).on('keyup', ' #ps-pms-creditCard-address', function () {\r\n // ($('#ps-pms-creditCard-address').val() as any).length < 3 ? $('#ps-pms-creditCard-address').addClass(self.invalidClassname) : $('#ps-pms-creditCard-address').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [{\r\n message: 'Address is required',\r\n type: 'required',\r\n }, {\r\n message: 'Address must have at least 3 symbols',\r\n min: 3,\r\n type: 'stringLength',\r\n }],\r\n });\r\n }\r\n\r\n function pmsCreditCardCity() {\r\n ($('#ps-pms-creditCard-city') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSCreditCardCity',\r\n },\r\n inputAttr: { 'aria-label': 'City' },\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: () => {\r\n //$(document).on('keyup', '#ps-pms-creditCard-city', function () {\r\n // ($('#ps-pms-creditCard-city').val() as any).length < 3 ? $('#ps-pms-creditCard-city').addClass(self.invalidClassname) : $('#ps-pms-creditCard-city').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [{\r\n message: 'City is required',\r\n type: 'required',\r\n }, {\r\n message: 'City must have at least 3 symbols',\r\n min: 3,\r\n type: 'stringLength',\r\n }],\r\n });\r\n }\r\n\r\n function pmsCreditCardCVVCode() {\r\n ($('#ps-pms-creditCard-cvvCode') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSCreditCardCvvCode',\r\n },\r\n inputAttr: { 'aria-label': 'CVV Code' },\r\n mask: '000',\r\n maskChar: ' ',\r\n maskInvalidMessage: 'Value is invalid',\r\n maxLength: 4,\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: () => {\r\n //$(document).on('keyup', '#ps-pms-creditCard-cvvCode', function () {\r\n // $('#ps-pms-creditCard-cvvCode').val(($('#ps-pms-creditCard-cvvCode').val() as any).replace(/\\D/g, ''));\r\n // ($('#ps-pms-creditCard-cvvCode').val() as any).length < 3 ? $('#ps-pms-creditCard-cvvCode').addClass(self.invalidClassname) : $('#ps-pms-creditCard-cvvCode').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n value: '',\r\n width: 79,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'CVV Code is required',\r\n }],\r\n });\r\n }\r\n\r\n function pmsCreditCardExpDate() {\r\n ($('#ps-pms-creditCard-expDate') as any).dxDateBox({\r\n calendarOptions: {\r\n maxZoomLevel: 'year',\r\n minZoomLevel: 'century',\r\n },\r\n displayFormat: 'MM / yy',\r\n elementAttr: {\r\n name: 'psPmSCreditCardExpDate',\r\n },\r\n inputAttr: { 'aria-label': 'Expiration Date' },\r\n min: new Date(),\r\n onValueChanged: (e) => {\r\n //$('#ps-pms-creditCard-expDate .dx-texteditor-input').on('blur', () => {\r\n // $('#ps-pms-creditCard-expDate').hasClass('dx-invalid') ? $('#ps-pms-creditCard-expDate').addClass(self.invalidClassname) : $('#ps-pms-creditCard-expDate').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n //type: 'date',\r\n useMaskBehavior: true,\r\n value: new Date(),\r\n width: 105,\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'Expiration date is required',\r\n }],\r\n });\r\n }\r\n\r\n function pmsCreditCardFirstName() {\r\n ($('#ps-pms-creditCard-firstName') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSCreditCardFirstName',\r\n },\r\n inputAttr: { 'aria-label': 'First Name' },\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: () => {\r\n //$(document).on('keyup', ' #ps-pms-creditCard-firstName', function () {\r\n // ($('#ps-pms-creditCard-firstName').val() as any).length < 3 ? $('#ps-pms-creditCard-firstName').addClass(self.invalidClassname) : $('#ps-pms-creditCard-firstName').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'First Name is required',\r\n }, {\r\n message: 'First Name have at least 3 symbols',\r\n min: 3,\r\n type: 'stringLength',\r\n }],\r\n });\r\n }\r\n\r\n function pmsCreditCardLastName() {\r\n ($('#ps-pms-creditCard-lastName') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSCreditCardLastName',\r\n },\r\n inputAttr: { 'aria-label': 'Last Name' },\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: () => {\r\n //$(document).on('keyup', ' #ps-pms-creditCard-lastName', function () {\r\n // ($('#ps-pms-creditCard-lastName').val() as any).length < 3 ? $('#ps-pms-creditCard-lastName').addClass(self.invalidClassname) : $('#ps-pms-creditCard-lastName').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'Last Name is required',\r\n }, {\r\n message: 'Last Name have at least 3 symbols',\r\n min: 3,\r\n type: 'stringLength',\r\n }],\r\n });\r\n }\r\n\r\n function pmsCreditCardName() {\r\n ($('#ps-pms-creditCard-name') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSCreditCardName',\r\n },\r\n inputAttr: { 'aria-label': 'Credit Card Name' },\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n if (e.component.option('value').length < 3) e.component.option('validationStatus', 'invalid');\r\n //$(document).on('keyup', '#cardName', function () {\r\n // ($('#cardName').val() as any).length < 3 ? $('#cardName').addClass(self.invalidClassname) : $('#cardName').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'Card Name is required',\r\n }, {\r\n message: 'Card Name have at least 3 symbols',\r\n min: 3,\r\n type: 'stringLength',\r\n }],\r\n });\r\n }\r\n\r\n function pmsCreditCardNumber() {\r\n ($('#ps-pms-creditCard-number') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSCreditCardNumber',\r\n },\r\n inputAttr: { 'aria-label': 'Credit Card Number' },\r\n mask: '0000 0000 0000 0000',\r\n maskChar: '_',\r\n maskInvalidMessage: 'Value is invalid',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n onValueChanged: (e) => {\r\n if (e.component.option('value').length < 16) e.component.option('validationStatus', 'invalid');\r\n //$(document).on('keyup', '#cardNumber', function () {\r\n // $('#cardNumber').val(($('#cardNumber').val() as any).replace(/\\D/g, ''));\r\n // ($('#cardNumber').val() as any).length < 16 ? $('#cardNumber').addClass(self.invalidClassname) : $('#cardNumber').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'Card Number is required',\r\n }],\r\n });\r\n }\r\n\r\n function pmsCreditCardSave() {\r\n $('#ps-pms-creditCard-save-btn').off('click').on('click', () => {\r\n self.isFormInvalid = true;\r\n //$('#ps-pms-setDefaultPayment').prop('disabled', false);\r\n const date = ($('#ps-pms-creditCard-expDate') as any).dxDateBox('instance').option('value');\r\n const dts = window['moment'](date).format('MM/YY').split('/');\r\n\r\n self.pmsSreditCardFiledsValidation();\r\n\r\n if (!self.isFormInvalid) {\r\n const res = {\r\n address1: $('#ps-pms-creditCard-address').dxTextBox('instance').option('value'),\r\n cardName: $('#ps-pms-creditCard-name').dxTextBox('instance').option('value'),\r\n cardNum: $('#ps-pms-creditCard-number').dxTextBox('instance').option('value'),\r\n city: $('#ps-pms-creditCard-city').dxTextBox('instance').option('value'),\r\n CVV: $('#ps-pms-creditCard-cvvCode').dxTextBox('instance').option('value'),\r\n defaultCard: $('#ps-pms-setDefaultPayment').is(':checked'),\r\n expDateMonth: dts[0],\r\n expDateYear: dts[1],\r\n firstName: $('#ps-pms-creditCard-firstName').dxTextBox('instance').option('value'),\r\n lastName: $('#ps-pms-creditCard-lastName').dxTextBox('instance').option('value'),\r\n state: ($('#ps-pms-creditCard-state') as any).dxSelectBox('instance').option('value'),\r\n zipCode: $('#ps-pms-creditCard-zipCode').dxTextBox('instance').option('value'),\r\n }\r\n\r\n self.pmsCreditCardSaveRequest(res);\r\n }\r\n });\r\n }\r\n\r\n function pmsCreditCardState() {\r\n ($('#ps-pms-creditCard-state') as any).dxSelectBox({\r\n items: self.paymentStatesData,\r\n displayExpr: (item) => {\r\n return item ? item.StateLong : '';\r\n },\r\n dropDownOptions: {\r\n wrapperAttr: {\r\n class: 'dropdownSize'\r\n }\r\n },\r\n onContentReady: (e) => {\r\n console.log('asdfa', self.paymentStatesData)\r\n },\r\n onValueChanged: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n //$('#ps-pms-creditCard-state').removeClass(self.invalidClassname);\r\n },\r\n placeholder: 'Select State',\r\n searchEnabled: true,\r\n searchExpr: ['StateLong', 'StateShort'],\r\n searchMode: 'contains',\r\n valueExpr: (item) => {\r\n return item ? item.StateShort : '';\r\n },\r\n }).dxValidator({\r\n validationRules: [{\r\n type: 'required',\r\n message: 'State is required'\r\n }]\r\n });\r\n }\r\n\r\n function pmsCreditCardZipCode() {\r\n ($('#ps-pms-creditCard-zipCode') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSCreditCardZipCode',\r\n },\r\n inputAttr: { 'aria-label': 'Zip Code' },\r\n mask: '00000',\r\n maskChar: '_',\r\n onInput: (e) => {\r\n const valLength = e.component._value.trim().length;\r\n if (valLength !== 5 || valLength !== 0) {\r\n e.component.option('validationStatus', 'valid');\r\n }\r\n },\r\n onValueChanged: () => {\r\n //$(document).on('keyup', ' #ps-pms-creditCard-zipCode', function () {\r\n // $('#ps-pms-creditCard-zipCode').val(($('#ps-pms-creditCard-zipCode').val() as any).replace(/\\D/g, ''));\r\n // ($('#ps-pms-creditCard-zipCode').val() as any).length != 5 ? $('#ps-pms-creditCard-zipCode').addClass(self.invalidClassname) : $('#ps-pms-creditCard-zipCode').removeClass(self.invalidClassname);\r\n //});\r\n },\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [\r\n {\r\n message: 'Zip Code is required',\r\n type: 'required',\r\n },\r\n {\r\n message: 'Zip Code is invalid',\r\n pattern: '^[0-9]{5}(?:-[0-9]{4})?$',\r\n type: 'pattern',\r\n }],\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * pmsCreditCard(): Function\r\n * Get and show all credit cards & set Add new credit card fields and actions\r\n */\r\n pmsCreditCard() {\r\n const self = this;\r\n self.pmsGetAllCreditCardsList();\r\n self.pmsAddCreditCard();\r\n }\r\n\r\n /**\r\n * pmsCreditCardActions(): Function\r\n * Ex.: Remove credit card\r\n */\r\n pmsCreditCardActions() {\r\n const self = this;\r\n\r\n $('.ps-pms-creditCard-remove-btn').off('click').on('click', (e) => {\r\n const card = $(e.target).closest('.card.card__item')\r\n const idCard = card.attr('id');\r\n if (card.find('.ps-pms-setDefaultPayment').is(':checked')) {\r\n const obj = {\r\n hideCancelIcon: true,\r\n position: 'top',\r\n size: 'sm',\r\n textModal: 'You can\\'t remove default payment method',\r\n textYesBtn: 'Ok',\r\n };\r\n window['InstanceBase'].onePropositionModalLoad(obj);\r\n } else {\r\n const obj = {\r\n callback: removeCreditCardCallback,\r\n classYesBtn: 'removeCrediCard',\r\n hideCancelIcon: false,\r\n position: 'top',\r\n textModal: 'Are you sure want to delete this payment method?',\r\n textNoBtn: 'Close',\r\n textYesBtn: 'Remove',\r\n };\r\n window['InstanceBase'].onePropositionModalLoad(obj);\r\n }\r\n\r\n function removeCreditCardCallback() {\r\n $('.root-preloader').show();\r\n $.post('/ProfileAndSettings/RemoveCard', { id: idCard /*28803246*/ }, () => {\r\n card.remove();\r\n $('.root-preloader').hide();\r\n });\r\n }\r\n });\r\n\r\n if (window['showAddCard']) {\r\n ($('#creditCard-info') as any).collapse('show');\r\n ($('#ps-pms-creditCard-addCard-collapse') as any).collapse('show');\r\n delete window['showAddCard'];\r\n }\r\n\r\n // ???????????\r\n //$('#ps-pms-accordion').find('.defaultPaymentMethod').html('');\r\n //$('#ps-pms-accordion').find('.defaultPaymentCard').html('');\r\n\r\n $('.root-preloader').hide();\r\n }\r\n\r\n /**\r\n * pmsSreditCardFiledsValidation(): Function\r\n * Check Add new credit card fields validation\r\n * @returns if all fields valid - false;\r\n */\r\n pmsSreditCardFiledsValidation() {\r\n const self = this;\r\n ($('#ps-pms-creditCard-name') as any).dxValidator('instance').validate();\r\n const name = $('#ps-pms-creditCard-name').dxTextBox('instance');\r\n if (name.option('validationStatus') == 'invalid') { name.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-number') as any).dxValidator('instance').validate();\r\n const number = $('#ps-pms-creditCard-number').dxTextBox('instance');\r\n if (number.option('validationStatus') == 'invalid') { number.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-expDate') as any).dxValidator('instance').validate();\r\n const expDate = ($('#ps-pms-creditCard-expDate') as any).dxDateBox('instance');\r\n if (expDate.option('validationStatus') == 'invalid') { expDate.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-cvvCode') as any).dxValidator('instance').validate();\r\n const cvvCode = $('#ps-pms-creditCard-cvvCode').dxTextBox('instance');\r\n if (cvvCode.option('validationStatus') == 'invalid') { cvvCode.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-firstName') as any).dxValidator('instance').validate();\r\n const firstName = $('#ps-pms-creditCard-firstName').dxTextBox('instance');\r\n if (firstName.option('validationStatus') == 'invalid') { firstName.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-lastName') as any).dxValidator('instance').validate();\r\n const lastName = $('#ps-pms-creditCard-lastName').dxTextBox('instance');\r\n if (lastName.option('validationStatus') == 'invalid') { lastName.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-address') as any).dxValidator('instance').validate();\r\n const address = $('#ps-pms-creditCard-address').dxTextBox('instance');\r\n if (address.option('validationStatus') == 'invalid') { address.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-zipCode') as any).dxValidator('instance').validate();\r\n const zipCode = $('#ps-pms-creditCard-zipCode').dxTextBox('instance');\r\n if (zipCode.option('validationStatus') == 'invalid') { zipCode.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-city') as any).dxValidator('instance').validate();\r\n const city = $('#ps-pms-creditCard-city').dxTextBox('instance');\r\n if (city.option('validationStatus') == 'invalid') { city.focus(); return; }\r\n\r\n ($('#ps-pms-creditCard-state') as any).dxValidator('instance').validate();\r\n const state = $('#ps-pms-creditCard-state').dxSelectBox('instance');\r\n if (state.option('validationStatus') == 'invalid') { state.focus(); return; }\r\n\r\n self.isFormInvalid = false;\r\n }\r\n\r\n /**\r\n * pmsCreditCardItem(cardArray)\r\n * @param cardArray - data of current card\r\n * @returns\r\n */\r\n pmsCreditCardItem(cardArray) {\r\n let cardImg;\r\n switch (cardArray.cardType) {\r\n case 'Amex': cardImg = 'logo-americanExpress.svg'; break;\r\n case 'Visa': cardImg = 'logo-visa.svg'; break;\r\n case 'Mast': cardImg = 'logo-mastercard.svg'; break;\r\n case 'Disc': cardImg = 'logo-discoverCard.svg'; break;\r\n }\r\n\r\n // let dateNow = `${new Date().getMonth()}${new Date().getFullYear().toString().slice(-2)}`;\r\n const expired = (new Date().getFullYear().toString().slice(-2) > cardArray.expDateYear ||\r\n (new Date().getFullYear().toString().slice(-2) == cardArray.expDateYear && new Date().getMonth() + 1 > cardArray.expDateMonth)) ?\r\n 'expired' : '';\r\n\r\n const cards = $('#accordionCreditCards').find('.card.card__item');\r\n const cardsCount = cards.length;\r\n const card =\r\n `
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"Visa\r\n
    ${cardArray.cardType} ${cardArray.cardName} ending in ...${cardArray.cardEnd}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ${cardArray.expDateMonth} / ${cardArray.expDateYear} (expired)
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Name on card
    \r\n

    ${cardArray.cardName}

    \r\n
    \r\n
    \r\n
    Billing address
    \r\n

    ${cardArray.firstName} ${cardArray.lastName}

    \r\n

    ${cardArray.address1}

    \r\n

    ${cardArray.city}, ${cardArray.state}, ${cardArray.zipCode}

    \r\n

    USA

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    `;\r\n return $(card).insertBefore(cards[cardsCount - 1]);\r\n }\r\n\r\n /**\r\n * pmsGetAllCreditCardsList(): Function\r\n * Get data for all credit cards of user and show them\r\n */\r\n pmsGetAllCreditCardsList() {\r\n const self = this;\r\n $.post('/ProfileAndSettings/GetCards', (data) => {\r\n const cardsCount = data.Cards.length;\r\n if (cardsCount > 0) {\r\n $('.card-preloader').show();\r\n const card = data.Cards;\r\n for (let i = 0; i < cardsCount; i++) {\r\n const check = data.Current == card[i].Id;\r\n const cardObj = {\r\n address1: card[i].Address1,\r\n id: card[i].Id,\r\n cardEnd: card[i].CardEnd,\r\n cardName: card[i].CardName,\r\n cardType: card[i].CardType,\r\n city: card[i].City,\r\n defaultCard: check,\r\n expDateMonth: card[i].ExpDate.slice(0, 2),\r\n expDateYear: card[i].ExpDate.slice(2, 5),\r\n firstName: card[i].FirstName,\r\n lastName: card[i].LastName,\r\n state: card[i].State,\r\n zipCode: card[i].ZipCode\r\n };\r\n self.pmsCreditCardItem(cardObj);\r\n }\r\n $('.card-preloader').hide();\r\n }\r\n else {\r\n const div = $('
    No credit cards added
    ')\r\n $('#accordionCreditCards').prepend(div);\r\n $('#ps-pms-setDefaultPayment').prop('checked', true).prop('disabled', true);\r\n $('.card-preloader').hide();\r\n $('.root-preloader').hide();\r\n }\r\n self.pmsSetDefaultPaymentMethod();\r\n self.pmsCreditCardActions();\r\n });\r\n }\r\n\r\n /**\r\n * pmsCreditCardSaveRequest(obj): Function\r\n * Send request for save and show new credit card\r\n * @param obj - data of new credit card\r\n */\r\n pmsCreditCardSaveRequest(obj: any) {\r\n const self = this;\r\n $('.root-preloader').show();\r\n $.post('/ProfileAndSettings/SaveCard', obj, (data) => {\r\n if (data.Ok) {\r\n const curentCard = data.customer;\r\n const check = $('#ps-pms-setDefaultPayment').is(':checked');\r\n\r\n $('.ps-psm-creditCard-no').remove();\r\n\r\n const newCardArray = {\r\n address1: curentCard.Address1,\r\n cardEnd: curentCard.CardEnd,\r\n cardName: curentCard.CardName,\r\n cardType: curentCard.CardType,\r\n city: curentCard.City,\r\n defaultCard: check,\r\n expDateMonth: obj.expDateMonth,\r\n expDateYear: obj.expDateYear,\r\n firstName: curentCard.FirstName,\r\n id: curentCard.Id,\r\n lastName: curentCard.LastName,\r\n state: curentCard.State,\r\n zipCode: curentCard.ZipCode,\r\n }\r\n self.pmsCreditCardItem(newCardArray); // show new credit card\r\n\r\n self.pmsSetDefaultPaymentMethod(); // set default credit card\r\n\r\n ($('#ps-pms-creditCard-addCard-collapse') as any).collapse('hide'); // hide Add new credit card section\r\n\r\n $('.root-preloader').hide();\r\n } else if (data.DeclineReason) {\r\n const obj = {\r\n hideCancelIcon: true,\r\n position: 'top',\r\n size: 'sm',\r\n textModal: data.DeclineReason,\r\n textYesBtn: 'Ok',\r\n };\r\n window['InstanceBase'].onePropositionModalLoad(obj);\r\n } else {\r\n const obj = {\r\n hideCancelIcon: true,\r\n position: 'top',\r\n textModal: 'Something gone wrong your credit card are not approved',\r\n textYesBtn: 'Ok',\r\n };\r\n window['InstanceBase'].onePropositionModalLoad(obj);\r\n }\r\n });\r\n }\r\n\r\n //pmsPaypal() { }\r\n\r\n pmsPersonal() {\r\n pmsPersonalAccountName();\r\n pmsPersonalBankRoutingNumber();\r\n pmsPersonalAccountNumber();\r\n pmsPersonalReAccountNumber();\r\n pmsPersonalCountry();\r\n pmsPersonalZipCode();\r\n pmsPersonalActions();\r\n\r\n function pmsPersonalAccountName() {\r\n ($('#ps-pms-personal-accountName') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSPersonalAccountName',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Account Name',\r\n autocomplete: 'off'\r\n },\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n tabIndex: 1,\r\n value: '',\r\n })\r\n //.dxValidator({\r\n // validationRules: [\r\n // {\r\n // type: 'required',\r\n // message: 'First Name is required',\r\n // },\r\n // {\r\n // message: 'First Name have at least 3 symbols',\r\n // min: 3,\r\n // type: 'stringLength',\r\n // }],\r\n //});\r\n }\r\n\r\n function pmsPersonalActions() {\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n }\r\n\r\n function pmsPersonalAccountNumber() {\r\n ($('#ps-pms-personal-accountNumber') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSPersonalAccountNumber',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Account Number',\r\n autocomplete: 'off'\r\n },\r\n mask: '00000 00000 0000 000',\r\n maskChar: '_',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n tabIndex: 3,\r\n value: '',\r\n })\r\n //.dxValidator({\r\n // validationRules: [\r\n // {\r\n // type: 'required',\r\n // message: 'First Name is required',\r\n // },\r\n // {\r\n // message: 'First Name have at least 3 symbols',\r\n // min: 3,\r\n // type: 'stringLength',\r\n // }],\r\n //});\r\n }\r\n\r\n function pmsPersonalBankRoutingNumber() {\r\n ($('#ps-pms-personal-bankNumber') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSPersonalBankNumber',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Bank Routing Number',\r\n autocomplete: 'off'\r\n },\r\n mask: '000 000 000',\r\n maskChar: '_',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n tabIndex: 2,\r\n value: '',\r\n })\r\n //.dxValidator({\r\n // validationRules: [\r\n // {\r\n // type: 'required',\r\n // message: 'First Name is required',\r\n // },\r\n // {\r\n // message: 'First Name have at least 3 symbols',\r\n // min: 3,\r\n // type: 'stringLength',\r\n // }],\r\n //});\r\n }\r\n\r\n function pmsPersonalCountry() {\r\n ($('#ps-pms-personal-country') as any).dxTextBox({\r\n disabled: true,\r\n elementAttr: {\r\n name: 'psPmSPersonalCountry',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Country',\r\n autocomplete: 'off'\r\n },\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n tabIndex: 5,\r\n value: 'United States',\r\n })\r\n }\r\n\r\n function pmsPersonalReAccountNumber() {\r\n ($('#ps-pms-personal-reAccountNumber') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSPersonalReAccountNumber',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Account Number',\r\n autocomplete: 'off'\r\n },\r\n mask: '00000 00000 0000 000',\r\n maskChar: '_',\r\n onInput: (e) => {\r\n e.component.option('validationStatus', 'valid');\r\n },\r\n tabIndex: 4,\r\n value: '',\r\n })\r\n //.dxValidator({\r\n // validationRules: [\r\n // {\r\n // type: 'required',\r\n // message: 'First Name is required',\r\n // },\r\n // {\r\n // message: 'First Name have at least 3 symbols',\r\n // min: 3,\r\n // type: 'stringLength',\r\n // }],\r\n //});\r\n }\r\n\r\n function pmsPersonalZipCode() {\r\n\r\n ($('#ps-pms-personal-zipCode') as any).dxTextBox({\r\n elementAttr: {\r\n name: 'psPmSPersonalZipCode',\r\n },\r\n inputAttr: {\r\n 'aria-label': 'ZipCode',\r\n autocomplete: 'off'\r\n },\r\n mask: '00000',\r\n maskChar: '_',\r\n onInput: (e) => {\r\n const valLength = e.component._value.trim().length;\r\n if (valLength !== 5 || valLength !== 0) {\r\n e.component.option('validationStatus', 'valid');\r\n }\r\n },\r\n tabIndex: 6,\r\n value: '',\r\n }).dxValidator({\r\n validationRules: [\r\n //{\r\n // message: 'Zip Code is required',\r\n // type: 'required',\r\n //},\r\n {\r\n message: 'Zip Code is invalid',\r\n pattern: '^[0-9]{5}(?:-[0-9]{4})?$',\r\n type: 'pattern',\r\n }],\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * pmsSetDefaultPaymentMethod(): Function\r\n * Set default or credit card method, or PayPal method, or Personal method\r\n */\r\n pmsSetDefaultPaymentMethod() {\r\n $('#ps-pms-accordion').find('.defaultPaymentMethod').html('');\r\n $('#ps-pms-accordion').find('.defaultPaymentCard').html('');\r\n $('input[type=\"radio\"].ps-pms-setDefaultPayment:checked').parents('.ps-pms-item').find('.defaultPaymentMethod').html(' (Default)');\r\n $('input[type=\"radio\"].ps-pms-setDefaultPayment:checked').parents('.card__item').find('.defaultPaymentCard').html(' (Default)');\r\n\r\n $('[name=\"defaultPaymentList\"]').on('change', (e) => {\r\n $('#ps-pms-accordion').find('.defaultPaymentMethod').html('');\r\n $('#ps-pms-accordion').find('.defaultPaymentCard').html('');\r\n $('input[type=\"radio\"].ps-pms-setDefaultPayment:checked').parents('.ps-pms-item').find('.defaultPaymentMethod').html(' (Default)');\r\n $('input[type=\"radio\"].ps-pms-setDefaultPayment:checked').parents('.card__item').find('.defaultPaymentCard').html(' (Default)');\r\n // Todo On Change Set Default Position\r\n $.post('/ProfileAndSettings/SaveDefaultPayment', { sid: $(e.target).val() }, () => { });\r\n });\r\n }\r\n // #endregion\r\n\r\n // #region ======================================= Phone Settings ==================================\r\n /**\r\n * phoneSettings(): Function\r\n * Load and show Phone Settings\r\n */\r\n phoneSettings() {\r\n const self = this;\r\n\r\n self.phsCallLogs();\r\n self.phsRoboCallLogs();\r\n self.phsAudioLibrary();\r\n self.phsVerifiedCallerIds();\r\n self.phsActiveNumbers();\r\n self.phsBuyNumber();\r\n self.phsVoicemailLibrary();\r\n self.phsActions();\r\n }\r\n\r\n /**\r\n * phsActions(): Function\r\n * If is session storage - load this tab\r\n */\r\n phsActions() {\r\n if (sessionStorage.getItem('audioLibrary')) {\r\n sessionStorage.removeItem('audioLibrary');\r\n ($('#ps-phs-audio-tab') as any).tab('show');\r\n }\r\n else if (sessionStorage.getItem('crmCard-callLog')) {\r\n sessionStorage.removeItem('crmCard-callLog');\r\n ($('#ps-phs-callLogs-tab') as any).tab('show');\r\n }\r\n else if (sessionStorage.getItem('fromExternal')) { // === from Ext Users -> CRM Card -> no phone number -> click to phone number ===\r\n sessionStorage.removeItem('fromExternal');\r\n ($('#ps-phs-buyNumber-tab') as any).tab('show');\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('hide');\r\n }\r\n else if (sessionStorage.getItem('roboCallSettings')) {\r\n sessionStorage.removeItem('roboCallSettings');\r\n ($('#ps-phs-roboCallLogs-tab') as any).tab('show');\r\n }\r\n else if (sessionStorage.getItem('voicemailLibrary')) {\r\n sessionStorage.removeItem('voicemailLibrary');\r\n ($('#ps-phs-audio-tab') as any).tab('show');\r\n }\r\n else {\r\n ($('#ps-phs-callLogs-tab') as any).tab('show');\r\n }\r\n }\r\n\r\n /**\r\n * phsActiveNumbers(): Function\r\n * Load page Active Numbers from Settings - Phone Settings\r\n */\r\n phsActiveNumbers(onlyRefresh = false) {\r\n const self = this;\r\n let activePhoneNumbers = [];\r\n if (onlyRefresh) {\r\n gvActiveNumbersGetSource();\r\n } else {\r\n $('#ps-phs-activeNumbers-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-phs-activeNumbers-content', 'SettingsPhoneActiveNumbers', () => {\r\n $('.root-preloader').show();\r\n\r\n gvActiveNumbersGetSource();\r\n })\r\n })\r\n }\r\n\r\n function gvActiveNumbers() {\r\n $('.gvActiveNumbers').dxDataGrid({\r\n dataSource: activePhoneNumbers,\r\n columns: [\r\n {\r\n cellTemplate: (container, options) => {\r\n window['InstanceBase'].phoneCellTemplateOnDevExGrid(options.value).appendTo(container);\r\n },\r\n dataField: 'PhoneNumber'\r\n },\r\n { dataField: 'FriendlyName' },\r\n {\r\n cellTemplate: (ctx, e) => {\r\n if (e.data.VoiceUrl) {\r\n const index = e.data.VoiceUrl.indexOf('PhoneNumber=');\r\n const value = index > 0 ? e.data.VoiceUrl.substr(index).substr('PhoneNumber='.length) : '';\r\n window['InstanceBase'].phoneCellTemplateOnDevExGrid(value).appendTo(ctx);\r\n }\r\n },\r\n dataField: 'Call Forwarding',\r\n },\r\n {\r\n dataField: 'Price'\r\n },\r\n {\r\n cellTemplate: (ctx, e) => {\r\n for (const k in e.data.Capabilities) {\r\n if (e.data.Capabilities[k]) {\r\n switch (k) {\r\n case 'Fax':\r\n ctx.append('');\r\n break;\r\n case 'MMS':\r\n ctx.append('');\r\n break;\r\n case 'Voice':\r\n ctx.append('');\r\n break;\r\n case 'SMS':\r\n ctx.append('');\r\n break;\r\n default:\r\n ctx.append(`${k}`);\r\n }\r\n }\r\n }\r\n },\r\n dataField: 'Capablities',\r\n width: 120,\r\n }\r\n ],\r\n height: '100%',\r\n onContentReady: (e) => {\r\n // e.component.option('height', '100%');\r\n e.component.deselectAll();\r\n\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('enable');\r\n\r\n const row = $('
    ');\r\n const colIncom = $('
    ');\r\n const colCount = $('
    ');\r\n const formRow = $('
    ');\r\n const colText = $('
    When a Call comes in forward to
    ');\r\n const colInput = $('
    ');\r\n const colButton = $('
    ');\r\n const input = $('
    ');\r\n const button = $('
    ');\r\n const countText = $('
    Total selected: 0
    ')\r\n colInput.append(input);\r\n colButton.append(button);\r\n formRow.append(colText).append(colInput).append(colButton);\r\n colIncom.append(formRow);\r\n colCount.append(countText);\r\n row.append(colCount).append(colIncom);\r\n\r\n e.element.find('.dx-toolbar-items-container .dx-toolbar-before').empty().append(row);\r\n // e.element.find('.dx-toolbar-items-container .dx-toolbar-before').html('
    ');\r\n e.element.find('#incomingForward').dxTextBox({\r\n mask: '+1 (X00) 000-0000',\r\n maskRules: { X: /[02-9]/ },\r\n disabled: true,\r\n height: 24,\r\n onInput: (e) => {\r\n ($(e.event.target).val() as any).replace(/\\D+/g, '').length == 11 ? $('#incomingApply').dxButton('instance').option('disabled', false) : $('#incomingApply').dxButton('instance').option('disabled', true);\r\n e.component.option('validationStatus', 'valid');\r\n\r\n },\r\n onValueChanged: (e) => {\r\n if (e.value.replace(/\\D+/g, '').length == 1) {\r\n e.component.option('validationStatus', 'valid');\r\n }\r\n },\r\n useMaskedValue: true,\r\n });\r\n e.element.find('#incomingApply').dxButton({\r\n disabled: true,\r\n height: 24,\r\n onClick: () => {\r\n $('.root-preloader').show();\r\n const selectedKeys = e.component.getSelectedRowKeys();\r\n const resp = [];\r\n const phoneNumber = e.element.find('#incomingForward').dxTextBox('option', 'value').replace(/\\D/g, '');\r\n selectedKeys.forEach(item => {\r\n $.post('/Twilio/EditIncoming', { phoneNumber: item.Id, Forward: phoneNumber }, (res) => {\r\n resp.push(res);\r\n if (resp.length >= selectedKeys.length) {\r\n $.get('/Twilio/Incomings', data => {\r\n try {\r\n $('.gvActiveNumbers').dxDataGrid('option', 'dataSource', data);\r\n }\r\n catch (ex) {\r\n console.error(ex);\r\n }\r\n activePhoneNumbers = data;\r\n $('.gvActiveNumbers').dxDataGrid('instance').refresh();\r\n });\r\n }\r\n });\r\n });\r\n },\r\n text: 'Apply',\r\n });\r\n\r\n $('.root-preloader').hide();\r\n },\r\n onEditorPreparing: (ev) => {\r\n window['InstanceBase'].applyFilterOnDevExGrid(ev);\r\n },\r\n onSelectionChanged: (e) => {\r\n const selectedCount = e.selectedRowKeys.length;\r\n if (selectedCount > 0) {\r\n $('#incomingForward').dxTextBox('instance').option('disabled', false);\r\n $('.activeNumbers-selected span').empty().text(selectedCount);\r\n } else {\r\n $('#incomingForward').dxTextBox('instance').option('disabled', true);\r\n $('.activeNumbers-selected span').empty().text(0);\r\n }\r\n },\r\n pager: {\r\n allowedPageSizes: [20, 50, 100, 150],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 20\r\n },\r\n rowAlternationEnabled: true,\r\n searchPanel: {\r\n placeholder: 'Search...',\r\n visible: true,\r\n },\r\n selection: {\r\n mode: 'multiple',\r\n selectAllMode: 'allPages',\r\n showCheckBoxesMode: 'always'\r\n },\r\n showBorders: true,\r\n summary: {\r\n totalItems: [\r\n { column: 'Price', summaryType: 'sum' }\r\n ]\r\n }\r\n });\r\n }\r\n\r\n function gvActiveNumbersGetSource() {\r\n try {\r\n $('.gvActiveNumbers').dxDataGrid('instance').dispose();\r\n }\r\n catch (ex) { }\r\n\r\n $.get('/Twilio/Incomings', data => {\r\n // try {\r\n // $('.gvActiveNumbers').dxDataGrid('option', 'dataSource', data);\r\n // }\r\n // catch (ex) {\r\n // console.error(ex);\r\n // }\r\n activePhoneNumbers = data;\r\n gvActiveNumbers();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * phsAudioLibrary(): Function\r\n * Load page Audio Library from Settings - Phone Settings\r\n */\r\n phsAudioLibrary() {\r\n const self = this;\r\n\r\n $('#ps-phs-audio-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-phs-audio-content', 'SettingsPhoneAudioLibrary', () => {\r\n audioHeader();\r\n gvAudio();\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n })\r\n })\r\n\r\n function audioHeader() {\r\n ($('#ps-phs-audio-routingNumber').dxTextBox({\r\n mask: '+1 (X00) 000-0000',\r\n maskInvalidMessage: 'The phone must have a correct USA phone format',\r\n maskRules: {\r\n 'X': /[02-9]/\r\n },\r\n onFocusOut: () => {\r\n const phone = $('#ps-phs-audio-routingNumber').dxTextBox('option', 'value');\r\n const digi = phone.replace(/\\D/g, '');\r\n\r\n if (digi.length == 11) {\r\n const data = { action: 'RoutingCall', value: phone };\r\n $.post('/ProfileAndSettings/Change', data, () => {\r\n window['User'].RoutingCall = data.value;\r\n });\r\n }\r\n },\r\n useMaskedValue: true,\r\n value: window['User'].RoutingCall,\r\n width: 150,\r\n }) as any)\r\n .dxValidator({\r\n validationRules: [{\r\n message: 'The phone must have a correct USA phone format',\r\n pattern: /^\\+\\s*1\\s*\\(\\s*[02-9]\\d{2}\\)\\s*\\d{3}\\s*-\\s*\\d{4}$/,\r\n type: 'pattern',\r\n }]\r\n });\r\n\r\n // === Delay ===\r\n ($('#ps-phs-audio-roboCallDelay') as any).dxNumberBox({\r\n min: 5,\r\n max: 60,\r\n onFocusOut: () => {\r\n // if (digi.length == 11) {\r\n const data = { action: 'RoboDelay', value: ($('#ps-phs-audio-roboCallDelay') as any).dxNumberBox('option', 'value') };\r\n $.post('/ProfileAndSettings/Change', data, () => {\r\n window['User'].RoboDelay = data.value;\r\n });\r\n // }\r\n },\r\n showSpinButtons: true,\r\n value: window['User'].RoboDelay,\r\n width: 90,\r\n });\r\n // === /Delay ===\r\n\r\n // === Pause ===\r\n ($('#ps-phs-audio-roboCallPause') as any).dxNumberBox({\r\n min: 0,\r\n max: 60,\r\n onFocusOut: () => {\r\n // if (digi.length == 11) {\r\n const data = { action: 'RoboPause', value: ($('#ps-phs-audio-roboCallPause') as any).dxNumberBox('option', 'value') };\r\n $.post('/ProfileAndSettings/Change',\r\n data,\r\n () => {\r\n window['User'].RoboPause = data.value;\r\n });\r\n // }\r\n },\r\n showSpinButtons: true,\r\n value: window['User'].RoboPause,\r\n width: 90,\r\n });\r\n // === /Pause ===\r\n\r\n ($('#ps-phs-audio-detectMachine') as any).dxCheckBox({\r\n onValueChanged: (ev) => {\r\n const data = { action: 'RoboMatchine', value: ev.component.option('value') };\r\n $.post('/ProfileAndSettings/Change', data, () => {\r\n window['User'].RoboMatchine = data.value;\r\n });\r\n },\r\n text: 'Detect machine',\r\n value: window['User'].RoboMatchine,\r\n });\r\n\r\n $('#ps-phs-audio-gvAudio-upload-btn').dxButton({\r\n hint: 'Upload file',\r\n icon: 'add',\r\n onClick: () => {\r\n $('#ps-phs-audio-add').click();\r\n },\r\n });\r\n\r\n $('#ps-phs-audio-add').off('change').on('change', (e) => {\r\n const data = window['InstanceBase'].addOneFileMax2MB(e.currentTarget, 'audio');\r\n\r\n $.ajax({\r\n contentType: false,\r\n data: data,\r\n processData: false,\r\n success: () => {\r\n $('#ps-phs-audio-gvAudio').dxDataGrid('instance').refresh();\r\n $('#ps-phs-audio-add').val('');\r\n if (window.location.pathname.toLowerCase() == '/robocall') {\r\n refreshRoboCallAudioLibraryDropdown();\r\n }\r\n },\r\n type: 'post',\r\n url: '/Audio',\r\n });\r\n });\r\n }\r\n\r\n function gvAudio() {\r\n $('#ps-phs-audio-gvAudio').dxDataGrid({\r\n dataSource: window['DevExpress'].data.AspNet.createStore({\r\n key: 'Id',\r\n loadUrl: '/Audio',\r\n }),\r\n columns: [\r\n { dataField: 'Name' },\r\n {\r\n caption: 'Records',\r\n cellTemplate: (container, options) => {\r\n $(container).addClass('ps-phs-gvRoboCallLogs-audio-td');\r\n const audio = $(``);\r\n self.phsStopAudio(audio, '#ps-phs-audio-tab');\r\n container.append(audio);\r\n },\r\n width: 265,\r\n },\r\n {\r\n cellTemplate: (container, options) => {\r\n const downloadBtn = $('
    ');\r\n const delBtn = $('
    ');\r\n const div = $('
    ');\r\n div.append(downloadBtn).append(delBtn);\r\n container.append(div);\r\n\r\n downloadBtn.dxButton({\r\n hint: 'Download file',\r\n icon: 'download',\r\n onClick: () => {\r\n window.open(`/Audio/${(options as any).key}`);\r\n },\r\n });\r\n\r\n delBtn.dxButton({\r\n hint: 'Remove file',\r\n icon: 'remove',\r\n onClick: () => {\r\n const objModal = {\r\n callback: DeleteRoboCallAudio,\r\n classYesBtn: 'deleteRoboCallAudio',\r\n textModal: 'Are You sure want to delete?',\r\n textNoBtn: 'No',\r\n textYesBtn: 'Yes',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(objModal);\r\n\r\n function DeleteRoboCallAudio() {\r\n $.ajax({\r\n url: `/Audio/${(options as any).key}`, method: 'DELETE', success: () => {\r\n $('#ps-phs-audio-gvAudio').dxDataGrid('instance').refresh();\r\n if (window.location.pathname.toLowerCase() == '/robocall') {\r\n refreshRoboCallAudioLibraryDropdown((options as any).key);\r\n }\r\n }\r\n });\r\n }\r\n },\r\n });\r\n },\r\n // headerCellTemplate(header, info) {\r\n // let upload = $('
    ');\r\n // upload.dxButton({\r\n // hint: 'Upload file',\r\n // icon: 'upload',\r\n // onClick: () => {\r\n // $('#ps-phs-audio-add').click();\r\n // },\r\n // });\r\n // header.parent().css('text-align', 'right');\r\n // upload.appendTo(header);\r\n // },\r\n width: 70,\r\n }\r\n ],\r\n height: '100%',\r\n onContentReady: (e) => {\r\n window['fixShowLinesDevExGrid'](e.element[0], true);\r\n $('.root-preloader').hide();\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 20\r\n },\r\n pager: {\r\n allowedPageSizes: [20, 50, 100, 150],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n rowAlternationEnabled: true,\r\n showBorders: true\r\n });\r\n }\r\n\r\n function refreshRoboCallAudioLibraryDropdown(id?) {\r\n try {\r\n const selectBox = $('#devEx-roboCall-voicemails').dxSelectBox('instance');\r\n const source = window['DevExpress'].data.AspNet.createStore({\r\n key: 'Id',\r\n loadUrl: '/Audio',\r\n })\r\n selectBox.option('dataSource', source);\r\n selectBox.repaint();\r\n if (id && id == selectBox.option('value')) selectBox.option('value', '');\r\n } catch (ex) { }\r\n }\r\n }\r\n\r\n /**\r\n * phsBuyNumber(): Function\r\n * Load page Buy Number from Settings - Phone Settings\r\n */\r\n phsBuyNumber() {\r\n const self = this;\r\n window['phoneSettingsChangeStatus'] = false;\r\n\r\n const phoneFilterMask = [\r\n { ID: 'A', Name: 'AreaCode' },\r\n { ID: 'L', Name: 'Locality' },\r\n { ID: 'N', Name: 'Number' },\r\n { ID: 'S', Name: 'State' },\r\n ];\r\n\r\n const buyNumberMatch = [\r\n { ID: 'F', Name: 'First part of number' },\r\n { ID: 'A', Name: 'Any where in number' },\r\n { ID: 'L', Name: 'Last part of number' }\r\n ];\r\n\r\n const page = 0;\r\n let k = 'KEY';\r\n const pp = window['Phone_Price'] ?? 2;\r\n const td = new Date();\r\n const m = buyNumberDaysInMonth(td.getMonth() + 1, td.getFullYear());\r\n const pricePerPhone = pp * (1 + (m - td.getDate()) / m);\r\n\r\n const selected = {};\r\n\r\n $('#ps-phs-buyNumber-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-phs-buyNumber-content', 'SettingsPhoneBuyNumber', () => {\r\n buyNumberDevExFilterMaskInput();\r\n buyNumberDevExFilterMask();\r\n buyNumberDevExMatch();\r\n gvBuyNumberLoad();\r\n buyNumberActions();\r\n })\r\n })\r\n\r\n function buyNumberActions() {\r\n $('.ps-phs-buyNumber-buy-btn').off('click').on('click', () => {\r\n const inst = buyNumberSelectedAsList();\r\n if (inst.length > 0) {\r\n buyNumberBuy(inst.map(t => t.FriendlyName));\r\n }\r\n });\r\n\r\n $('.ps-phs-buyNumber-selectedGridItems span').off('click').on('click', () => {\r\n gvBuyNumber(buyNumberSelectedAsList());\r\n })\r\n\r\n $('#ps-phs-buyNumber-form').on('submit', e => {\r\n e.preventDefault();\r\n\r\n $('.root-preloader').show();\r\n $('.ps-phs-buyNumber-selectedGridItems span').empty().text(buyNumberSelectedAsList().length).css('cursor', 'default');\r\n gvBuyNumberLoad();\r\n });\r\n\r\n $('#ps-phs-buyNumber-tab').off('hide.bs.tab').on('hide.bs.tab', e => {\r\n const selectedKeys = $('.gvBuyNumber').dxDataGrid('instance').getSelectedRowKeys();\r\n if (window['phoneSettingsChangeStatus'] && selectedKeys.length) {\r\n e.preventDefault();\r\n const objModal = {\r\n callback: buyNumberRemoveChange,\r\n classYesBtn: 'buyNumberChange',\r\n textModal: 'Your changes will be lost. Are you sure?',\r\n textNoBtn: 'No',\r\n textYesBtn: 'Yes',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(objModal);\r\n }\r\n else {\r\n buyNumberClear();\r\n }\r\n\r\n function buyNumberRemoveChange() {\r\n buyNumberClear();\r\n $((e as any).relatedTarget).click();\r\n }\r\n })\r\n }\r\n\r\n function buyNumberBuy(phones) {\r\n let phonesCols = '';\r\n for (let i = 0; i < phones.length; i++) {\r\n phonesCols += `
    ${phones[i]}${i == phones.length - 1 ? '?' : ''}
    `;\r\n }\r\n const objModal = {\r\n callback: BuyNumberAddNumbers,\r\n classYesBtn: 'phoneSettingsBuyNumber-buy',\r\n textModal: `
    Do You want buy
    ${phonesCols}
    `,\r\n textNoBtn: 'No',\r\n textYesBtn: 'Yes',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(objModal);\r\n\r\n function BuyNumberAddNumbers() {\r\n $('.root-preloader').show();\r\n $.post('/Twilio/AddIncomings', { phoneNumbers: phones }, () => {\r\n const objModal = {\r\n size: 'sm',\r\n textModal: 'Ok',\r\n textYesBtn: 'Ok',\r\n }\r\n setTimeout(() => { window['InstanceBase'].onePropositionModalLoad(objModal); }, 100);\r\n\r\n $('.gvBuyNumber').dxDataGrid('refresh');\r\n if ($('#ps-phs-activeNumbers-content .ps-section-item').length) self.phsActiveNumbers(true);\r\n $('.root-preloader').hide();\r\n });\r\n }\r\n }\r\n\r\n function buyNumberChangeStatus() {\r\n const maskValue = $('#ps-phs-buyNumber-filterMask').dxSelectBox('instance').option('value');\r\n const maskInputValue = $('#ps-phs-buyNumber-filterMask-input').dxTextBox('instance').option('value');\r\n const selectItemsOnGrid = $('.gvBuyNumber').dxDataGrid('instance').option('selectedRowKeys');\r\n\r\n window['phoneSettingsChangeStatus'] = maskValue === 'A' && !maskInputValue && !selectItemsOnGrid.length ? false : true;\r\n }\r\n\r\n function buyNumberClear() {\r\n $('#ps-phs-buyNumber-filterMask').dxSelectBox('instance').option('value', 'A');\r\n $('#ps-phs-buyNumber-filterMask-input').dxTextBox('instance').option('value', '');\r\n $('.gvBuyNumber').dxDataGrid('instance').deselectAll();\r\n buyNumberChangeStatus();\r\n $('#ps-phs-buyNumber-form').submit();\r\n }\r\n\r\n function buyNumberDaysInMonth(month, year) {\r\n return new Date(year, month, 0).getDate();\r\n }\r\n\r\n function buyNumberDevExFilterMask() {\r\n $('#ps-phs-buyNumber-filterMask').dxSelectBox({\r\n dataSource: phoneFilterMask,\r\n displayExpr: 'Name',\r\n onValueChanged: (e) => {\r\n try {\r\n $('#ps-phs-buyNumber-filterMask-input').dxTextBox('dispose')\r\n } catch (ex) { }\r\n\r\n switch (e.value) {\r\n case 'A':\r\n $('#ps-phs-buyNumber-match-section').hide();\r\n buyNumberDevExFilterMaskInput();\r\n break;\r\n case 'L':\r\n $('#ps-phs-buyNumber-match-section').hide();\r\n $('#ps-phs-buyNumber-filterMask-input').dxTextBox({\r\n maxLength: 50,\r\n mode: 'text',\r\n onValueChanged: () => {\r\n buyNumberChangeStatus();\r\n },\r\n placeholder: 'Search by City name',\r\n value: ''\r\n });\r\n break;\r\n case 'N':\r\n $('#ps-phs-buyNumber-match-section').show();\r\n $('#ps-phs-buyNumber-filterMask-input').dxTextBox({\r\n maxLength: 10,\r\n mode: 'tel',\r\n onKeyDown: (e) => {\r\n if (!((e.event['originalEvent'].keyCode >= 48 && e.event['originalEvent'].keyCode <= 57) || (e.event['originalEvent'].keyCode >= 96 && e.event['originalEvent'].keyCode <= 105) || (e.event['originalEvent'].keyCode <= 40) || e.event['originalEvent'].keyCode == 46 || e.event['originalEvent'].keyCode == 8)) {\r\n window['valFilter'] = true;\r\n }\r\n },\r\n onInput: () => {\r\n const val = $('#ps-phs-buyNumber-filterMask-input .dx-texteditor-input').val();\r\n if (window['valFilter']) $('#ps-phs-buyNumber-filterMask-input .dx-texteditor-input').val((val as any).slice(0, -1))\r\n delete window['valFilter']\r\n },\r\n onValueChanged: () => {\r\n buyNumberChangeStatus();\r\n },\r\n placeholder: 'Search by digits (up to 10 max)',\r\n value: ''\r\n });\r\n break;\r\n case 'S':\r\n $('#ps-phs-buyNumber-match-section').hide();\r\n $('#ps-phs-buyNumber-filterMask-input').dxTextBox({\r\n maxLength: 2,\r\n mode: 'text',\r\n onKeyDown: (e) => {\r\n if ((e.event['originalEvent'].keyCode >= 48 && e.event['originalEvent'].keyCode <= 57) || (e.event['originalEvent'].keyCode >= 96 && e.event['originalEvent'].keyCode <= 105)) {\r\n window['valFilter'] = true;\r\n }\r\n },\r\n onInput: () => {\r\n const val = $('#ps-phs-buyNumber-filterMask-input .dx-texteditor-input').val();\r\n if (window['valFilter']) $('#ps-phs-buyNumber-filterMask-input .dx-texteditor-input').val((val as any).slice(0, -1))\r\n delete window['valFilter']\r\n },\r\n onValueChanged: () => {\r\n buyNumberChangeStatus();\r\n },\r\n placeholder: 'Search by state (2 letters)',\r\n value: ''\r\n });\r\n break;\r\n default:\r\n $('#ps-phs-buyNumber-match-section').hide();\r\n break;\r\n }\r\n\r\n buyNumberChangeStatus();\r\n },\r\n value: 'A',\r\n valueExpr: 'ID',\r\n });\r\n }\r\n\r\n function buyNumberDevExFilterMaskInput() {\r\n ($('#ps-phs-buyNumber-filterMask-input') as any).dxTextBox({\r\n maxLength: 3,\r\n onKeyDown: (e) => {\r\n if (!((e.event.originalEvent.keyCode >= 48 && e.event.originalEvent.keyCode <= 57) || (e.event.originalEvent.keyCode >= 96 && e.event.originalEvent.keyCode <= 105) || (e.event.originalEvent.keyCode >= 37 && e.event.originalEvent.keyCode <= 40) || e.event.originalEvent.keyCode == 46 || e.event.originalEvent.keyCode == 8)) {\r\n window['valFilter'] = true;\r\n }\r\n },\r\n onInput: () => {\r\n const val = $('#ps-phs-buyNumber-filterMask-input .dx-texteditor-input').val();\r\n if (window['valFilter']) $('#ps-phs-buyNumber-filterMask-input .dx-texteditor-input').val((val as any).slice(0, -1))\r\n delete window['valFilter']\r\n },\r\n onValueChanged: () => {\r\n buyNumberChangeStatus();\r\n },\r\n placeholder: 'Search by 3 digits',\r\n value: ''\r\n });\r\n }\r\n\r\n function buyNumberDevExMatch() {\r\n $('#ps-phs-buyNumber-match').dxSelectBox({\r\n dataSource: buyNumberMatch,\r\n displayExpr: 'Name',\r\n value: 'A',\r\n valueExpr: 'ID',\r\n });\r\n }\r\n\r\n function buyNumberGenerateQuery() {\r\n let str = '';\r\n const q = $('#ps-phs-buyNumber-filterMask-input').dxTextBox('instance').option('value');\r\n switch ($('#ps-phs-buyNumber-filterMask').dxSelectBox('option', 'value')) {\r\n case 'A':\r\n str += '&areaCode=' + q;\r\n break;\r\n case 'L':\r\n str += '&inLocality=' + q;\r\n break;\r\n case 'P':\r\n str += '&inPostalCode=' + q;\r\n break;\r\n case 'S':\r\n str += '&inRegion=' + q;\r\n break;\r\n case 'C':\r\n str += '&countryCode=' + q;\r\n break;\r\n default:\r\n switch ($('#ps-phs-buyNumber-match').dxSelectBox('option', 'value')) {\r\n case 'F':\r\n let sf = '' + q;\r\n while (sf.length <= 10) {\r\n sf = sf + '*';\r\n }\r\n str += '&search=' + sf;\r\n break;\r\n case 'L':\r\n let sl = '' + q;\r\n while (sl.length <= 10) {\r\n sl = '*' + sl;\r\n }\r\n str += '&search=' + sl;\r\n break;\r\n default:\r\n str += '&search=' + q;\r\n }\r\n break;\r\n }\r\n // if (!$('#capabilitesAny').is(':checked')) {\r\n // let list = ['Voice', 'SMS', 'MMS', 'Fax'];\r\n\r\n // if ($('#capabilitesVoice').is(':checked'))\r\n // str += '&capabilites=Voice'\r\n // else\r\n // str += '&capabilites=NoVoice'\r\n // if ($('#capabilitesSMS').is(':checked'))\r\n // str += '&capabilites=SMS'\r\n // else\r\n // str += '&capabilites=NoSMS'\r\n // if ($('#capabilitesMMS').is(':checked'))\r\n // str += '&capabilites=MMS'\r\n // else\r\n // str += '&capabilites=NoMMS'\r\n // if ($('#capabilitesFax').is(':checked'))\r\n // str += '&capabilites=Fax'\r\n // else\r\n // str += '&capabilites=NoFax'\r\n // }\r\n return str;\r\n }\r\n\r\n function buyNumberSelectedAsList() {\r\n const arr = [];\r\n for (const k in selected)\r\n selected[k].forEach(t => {\r\n //Remove dublicat\r\n if (!arr.find(a => a.PhoneNumber == t.PhoneNumber)) {\r\n arr.push(t);\r\n }\r\n });\r\n return arr;\r\n }\r\n\r\n function gvBuyNumber(src, callback?) {\r\n $('.gvBuyNumber').dxDataGrid({\r\n dataSource: src,\r\n columns: [\r\n // {\r\n // caption: 'Action',\r\n // cellTemplate(ctx, e) {\r\n // let bt = $('');\r\n // bt.off('click').on('click', (ec) => {\r\n // buyNumberBuy(e);\r\n // });\r\n // ctx.html('');\r\n // ctx.append(bt);\r\n // },\r\n // },\r\n {\r\n cellTemplate: (ctx, e) => {\r\n const span = $(`${e.data.FriendlyName}`);\r\n span.css('cursor', 'pointer');\r\n ctx.html('');\r\n ctx.append(span);\r\n\r\n //span.off('click').on('click', () => {\r\n // buyNumberBuy(e);\r\n //});\r\n },\r\n dataField: 'FriendlyName',\r\n }, 'Locality',\r\n {\r\n caption: 'State',\r\n dataField: 'Region',\r\n }, 'PostalCode',\r\n {\r\n cellTemplate: (ctx, e) => {\r\n for (const k in e.data.Capabilities) {\r\n switch (k) {\r\n case 'Fax':\r\n ctx.append(``);\r\n break;\r\n case 'MMS':\r\n ctx.append(``);\r\n break;\r\n case 'Voice':\r\n ctx.append(``);\r\n break;\r\n case 'SMS':\r\n ctx.append(``);\r\n break;\r\n default:\r\n ctx.append(`${k}`);\r\n }\r\n }\r\n },\r\n dataField: 'Capablities',\r\n width: 120,\r\n }\r\n ],\r\n height: '100%',\r\n hoverStateEnabled: false,\r\n onContentReady: (e) => {\r\n //window['fixShowLinesDevExGrid'](e.element[0], true);\r\n if (Array.isArray(src))\r\n e.component.option('selectedRowKeys', src);\r\n if (callback) callback();\r\n\r\n $('.root-preloader').hide();\r\n },\r\n onSelectionChanged: (e) => {\r\n if (!Array.isArray(src)) {\r\n selected[k] = e.selectedRowsData;\r\n }\r\n else {\r\n gvBuyNumberDeselect(e.selectedRowKeys);\r\n }\r\n const allSelected = buyNumberSelectedAsList();\r\n const selectedCount = allSelected.length;\r\n const psp = pricePerPhone * selectedCount;\r\n if (psp > 0) {\r\n $('.ps-phs-buyNumber-price span').html(String((Math.floor(psp * 100) / 100)));\r\n $('.ps-phs-buyNumber-price-col').show();\r\n } else {\r\n $('.ps-phs-buyNumber-price-col').hide();\r\n }\r\n // $('#buyNumberOver-popup .dx-popup-content').html(allSelected.map(x => x.FriendlyName).join(','));\r\n\r\n const el = $('.ps-phs-buyNumber-selectedGridItems span');\r\n if (selectedCount > 0) {\r\n buyNumberChangeStatus();\r\n $('.ps-phs-buyNumber-buy-btn').prop('disabled', false);\r\n el.empty().text(selectedCount).css('cursor', 'pointer');\r\n if (!el.attr('data-bs-toggle')) {\r\n el.attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'top').attr('data-title', 'Click if show only selected');\r\n el.tooltip('enable');\r\n }\r\n } else {\r\n buyNumberChangeStatus();\r\n $('.ps-phs-buyNumber-buy-btn').prop('disabled', true);\r\n el.empty().text('0').css('cursor', 'default');\r\n el.removeAttr('data-bs-toggle').removeAttr('data-bs-placement').removeAttr('data-title');\r\n el.tooltip('disable');\r\n }\r\n },\r\n pager: {\r\n allowedPageSizes: [20, 50, 100, 150],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 20\r\n },\r\n rowAlternationEnabled: true,\r\n scrolling: {\r\n showScrollbar: 'always',\r\n useNative: false,\r\n },\r\n selectedRowKeys: buyNumberSelectedAsList(),\r\n selection: {\r\n mode: 'multiple',\r\n selectAllMode: 'allPages',\r\n showCheckBoxesMode: 'always'\r\n },\r\n showBorders: true,\r\n })\r\n }\r\n\r\n function gvBuyNumberDeselect(arr) {\r\n const ak = 'ARR';\r\n for (const k in selected) {\r\n selected[k] = selected[k].filter(t => {\r\n return arr.find(a => a.PhoneNumber == t.PhoneNumber);\r\n });\r\n }\r\n selected[ak] = arr;\r\n }\r\n\r\n function gvBuyNumberLoad() {\r\n //no need try { $('.gvBuyNumber').dxDataGrid('instance').deselectAll() } catch (ex) { };\r\n\r\n const src = new window['DevExpress'].data.CustomStore({\r\n key: 'PhoneNumber',\r\n load() {\r\n const deferred = $.Deferred();\r\n $.ajax({\r\n url: `/Twilio/BuyPhoneNumbers?Page=${page}${buyNumberGenerateQuery()}`,\r\n dataType: 'json',\r\n success(result) {\r\n k = window['InstanceBase'].generateUUID(9);\r\n //let grid = $('.gvBuyNumber').dxDataGrid('instance');\r\n\r\n //moved here OnLoad Data\r\n //grid.deselectAll();\r\n deferred.resolve(result.Values);\r\n },\r\n error() {\r\n deferred.reject('Data Loading Error');\r\n }\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n });\r\n\r\n $('.ps-phs-buyNumber-selectedGridItems span').removeClass('selected');\r\n gvBuyNumber(src);\r\n }\r\n }\r\n\r\n /**\r\n * phsCallLogs(): Function\r\n * Load page Call Logs from Settings - Phone Settings\r\n */\r\n phsCallLogs() {\r\n const self = this;\r\n\r\n let dataFromDashboard;\r\n //let LastCallsType = false;\r\n $('#ps-phs-callLogs-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-phs-callLogs-content', 'SettingsPhoneCallLogs', () => {\r\n phsCallLogsFirstActions();\r\n window['InstanceBase'].dateRangeWithYearWeekDates('.ps-phs-callLogs-main', phsUpdateCallLogs);\r\n if (window['User'] && window['User'].Manager) {\r\n phsCallLogsUsers();\r\n } else {\r\n $('.ps-phs-callLogs-userFilter-col').remove();\r\n }\r\n phsCallLogsDateRange();\r\n phsUpdateCallLogs();\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n })\r\n });\r\n\r\n function phsCallLogsDateRange() {\r\n const year = ($(`.ps-phs-callLogs-main .ywftDateRange-devExYear`) as any).dxSelectBox('instance');\r\n const from = ($(`.ps-phs-callLogs-main .ywftDateRange-devExDateFrom`) as any).dxDateBox('instance');\r\n const to = ($(`.ps-phs-callLogs-main .ywftDateRange-devExDateTo`) as any).dxDateBox('instance');\r\n\r\n if (dataFromDashboard) {\r\n from.option('value', new Date(dataFromDashboard.StartDate));\r\n to.option('value', new Date(dataFromDashboard.EndDate));\r\n }\r\n\r\n //from.on('valueChanged', (e) => {\r\n // //let param = false\r\n // if (!LastCallsType) {\r\n // //setTimeout(() => { phsUpdateCallLogs() }, 500);\r\n\r\n // //param = e.name == 'opened' && e.value ? true : false;\r\n // //if (param && e.name == 'text')\r\n // phsUpdateCallLogs()\r\n // }\r\n //})\r\n //to.on('valueChanged', () => {\r\n // //setTimeout(() => { phsUpdateCallLogs() }, 500);\r\n // phsUpdateCallLogs()\r\n //})\r\n\r\n $('.ps-phs-callLogs-day-btn').off('click').on('click', (ev) => {\r\n //LastCallsType = true;\r\n //year.option('value', new Date().getFullYear());\r\n //setTimeout(() => {\r\n // LastCallsType = true;\r\n // from.option('value', new Date());\r\n // LastCallsType = true;\r\n // to.option('value', new Date());\r\n // $(ev.currentTarget).addClass('active');\r\n //}, 500);\r\n self.psDateRangeTodayBtn('.ps-phs-callLogs-main');\r\n })\r\n }\r\n\r\n function phsCallLogsFirstActions() {\r\n if (sessionStorage.getItem('callsOnDashboardGrid')) {\r\n dataFromDashboard = JSON.parse(sessionStorage.getItem('callsOnDashboardGrid'))\r\n //e.component.option('value', [dataFromDashboard.Email]);\r\n //($('.ps-phs-callLogs-main .ywftDateRange-devExDateFrom') as any).dxDateBox('instance').option('value', new Date(dataFromDashboard.StartDate));\r\n //($('.ps-phs-callLogs-main .ywftDateRange-devExDateTo') as any).dxDateBox('instance').option('value', new Date(dataFromDashboard.EndDate));\r\n\r\n sessionStorage.removeItem('callsOnDashboardGrid');\r\n //setTimeout(() => { $('.ps-phs-callLogs-dateRange-btns .settings-dateRange-btn').removeClass('active'); }, 200)\r\n }\r\n }\r\n\r\n function phsCallLogsUsers() {\r\n ($('#ps-phs-callLogs-userFilter') as any).dxDropDownBox({\r\n dataSource: window['DevExpress'].data.AspNet.createStore({\r\n key: 'Email',\r\n loadUrl: '/ProfileAndSettings/ListSubUsers',\r\n onLoaded: (result) => {\r\n console.log('result', result);\r\n },\r\n onLoading: (loadOptions) => {\r\n console.log('loading', loadOptions)\r\n },\r\n }),\r\n contentTemplate: (e) => {\r\n const value = e.component.option('value'),\r\n $dataGrid = $('
    ').dxDataGrid({\r\n dataSource: e.component.getDataSource(),\r\n columns: ['FirstName', 'LastName', 'Email', 'Status'],\r\n height: 265,\r\n hoverStateEnabled: true,\r\n keyExpr: 'Email',\r\n onContentReady: (el) => {\r\n if (value[0]) {\r\n const selected = el.component.getDataSource()['_items'].find(el => el.Email == value);\r\n if (selected as any) {\r\n window['firstSelect'] = true;\r\n el.component.option('selectedRowKeys', selected.value)\r\n }\r\n } else {\r\n window['firstSelect'] = true;\r\n }\r\n },\r\n onEditorPreparing: (e) => {\r\n window['InstanceBase'].devExSearchFilterDelay(e);\r\n window['InstanceBase'].devExSearchFilterMin(e);\r\n },\r\n onSelectionChanged: (selectedItems) => {\r\n const keys = selectedItems.selectedRowKeys;\r\n const hasSelection = keys.length;\r\n\r\n e.component.option('value', hasSelection ? keys[0] : null);\r\n if (!window['firstSelect']) {\r\n e.component.close();\r\n } else {\r\n delete window['firstSelect'];\r\n }\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 10\r\n },\r\n remoteOperations: true,\r\n searchPanel: {\r\n visible: true\r\n },\r\n selectedRowKeys: value,\r\n scrolling: { mode: 'infinite' },\r\n selection: { mode: 'single' },\r\n showBorders: true,\r\n });\r\n\r\n return $dataGrid;\r\n },\r\n displayExpr: 'FullName',\r\n dropDownOptions: {\r\n width: 500\r\n },\r\n onInput: () => {\r\n try {\r\n $('#gvcallLogsUserFilter').dxDataGrid('instance').deselectAll()\r\n } catch (ex) { }\r\n },\r\n onValueChanged: () => {\r\n phsUpdateCallLogs();\r\n },\r\n placeholder: 'Select Filter by User',\r\n showClearButton: true,\r\n value: [dataFromDashboard?.Email] ?? ''\r\n })\r\n }\r\n\r\n function phsGetCallHistorySource(start?: Date, end?: Date, email?: String) {\r\n return (window['DevExpress'] as any).data.AspNet.createStore({\r\n loadMethod: 'POST',\r\n loadParams: { Start: start ? window['moment'](start).format('MM/DD/YYYY') : undefined, End: end ? window['moment'](end).format('MM/DD/YYYY') : undefined, Email: email ?? undefined },\r\n loadUrl: '/Calls/Calls',\r\n });\r\n }\r\n\r\n function phsUpdateCallLogs() {\r\n //if (changedDate) {\r\n // $('.settings-dateRange-btn-callLogs').removeClass('active');\r\n // if (LastCallsType) {\r\n // $(`.filtersCallLogs-${LastCallsType}`).addClass('active');\r\n // LastCallsType = undefined;\r\n // }\r\n //}\r\n\r\n //if (!LastCallsType) {\r\n // $('.ps-phs-callLogs-day-btn').removeClass('active');\r\n // LastCallsType = false;\r\n //} else {\r\n // LastCallsType = false;\r\n //}\r\n let columns: any = [\r\n {\r\n caption: 'Date',\r\n cellTemplate: (container, options) => {\r\n const data = options.data.Created;\r\n container.html(window['moment'](data + 'Z').utcOffset(window['userTimezone'].Offset).format('L, LT'));\r\n },\r\n dataField: 'Created',\r\n sortOrder: 'desc',\r\n width: 300\r\n },\r\n { dataField: 'Status' },\r\n { dataField: 'From' },\r\n { dataField: 'To' },\r\n 'Company Name',\r\n {\r\n dataField: 'Price',\r\n cellTemplate: (cell, ev) => {\r\n const sec = parseInt(ev.data.Duration);\r\n if (sec == 0) {\r\n cell.html(sec + '$');\r\n }\r\n else {\r\n let x = Math.floor(sec / 60) + 1;\r\n x *= 0.02;\r\n cell.html(x.toLocaleString() + '$');\r\n }\r\n }\r\n },\r\n { cssClass: 'pe-3', dataField: 'Duration', dataType: 'number' }\r\n ];\r\n if (window['User']?.Manager) {\r\n columns = [\r\n {\r\n caption: 'Date',\r\n cellTemplate: (container, options) => {\r\n const data = options.data.Created;\r\n container.html(window['moment'](data + 'Z').utcOffset(window['userTimezone'].Offset).format('L, LT'));\r\n },\r\n dataField: 'Created',\r\n sortOrder: 'desc',\r\n width: 150\r\n },\r\n {\r\n dataField: 'Status',\r\n width: 100\r\n },\r\n {\r\n caption: 'User',\r\n cellTemplate: (cell, ev) => {\r\n cell.html(ev.data.FirstName + ' ' + ev.data.LastName)\r\n },\r\n dataField: 'FirstName'\r\n },\r\n {\r\n dataField: 'From',\r\n width: 110\r\n },\r\n {\r\n dataField: 'To',\r\n width: 110\r\n },\r\n {\r\n caption: 'Company Name',\r\n dataField: 'Company_Name',\r\n },\r\n {\r\n calculateSortValue: (row) => {\r\n const sec = parseInt(row.Duration);\r\n if (sec == 0) return 0;\r\n return Math.floor(sec / 60) + 1;\r\n },\r\n cellTemplate: (cell, ev) => {\r\n const sec = parseInt(ev.data.Duration);\r\n if (sec == 0) {\r\n cell.html(sec + '$');\r\n }\r\n else {\r\n let x = Math.floor(sec / 60) + 1;\r\n x *= 0.02;\r\n cell.html(x.toLocaleString() + '$');\r\n }\r\n },\r\n dataField: 'Price',\r\n width: 120\r\n },\r\n {\r\n caption: 'Duration, s',\r\n cssClass: 'pe-3',\r\n dataField: 'Duration',\r\n dataType: 'text',\r\n width: 120\r\n }\r\n ]\r\n }\r\n\r\n const startDate = ($('.ps-phs-callLogs-main .ywftDateRange-devExDateFrom') as any).dxDateBox('option', 'value');\r\n const endDate = ($('.ps-phs-callLogs-main .ywftDateRange-devExDateTo') as any).dxDateBox('option', 'value');\r\n const newStartDate = window['moment'](startDate).startOf('day').toDate();\r\n const newEndDate = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate() + 1);\r\n //const email = ($('#ps-phs-callLogs-userFilter') as any).dxDropDownBox('instance').option('value') ? ($('#ps-phs-callLogs-userFilter') as any).dxDropDownBox('instance').option('value')[0] : ''\r\n\r\n $('.ps-phs-gvCallLogs').dxDataGrid({\r\n dataSource: phsGetCallHistorySource(($('.ps-phs-callLogs-main .ywftDateRange-devExDateFrom') as any).dxDateBox('option', 'value'),\r\n ($('.ps-phs-callLogs-main .ywftDateRange-devExDateTo') as any).dxDateBox('option', 'value'),\r\n window['User'] && window['User'].Manager ?\r\n ($('#ps-phs-callLogs-userFilter') as any).dxDropDownBox('instance').option('value') ?\r\n ($('#ps-phs-callLogs-userFilter') as any).dxDropDownBox('instance').option('value')[0] : '' : ''),\r\n columns: columns,\r\n filterRow: {\r\n applyFilter: 'onClick',\r\n visible: true\r\n },\r\n filterValue: [\r\n ['Created', '>=', window['moment'](newStartDate).format('YYYY-MM-DD')],\r\n 'and',\r\n ['Created', '<=', window['moment'](newEndDate).format('YYYY-MM-DD')],\r\n ],\r\n grouping: {\r\n allowCollapsing: true,\r\n },\r\n headerFilter: {\r\n visible: true\r\n },\r\n height: '100%',\r\n masterDetail: {\r\n enabled: true,\r\n template: (container, options) => {\r\n $.post('/UserLeads/GetRecords2', options.data, (data) => {\r\n if (data) {\r\n let first = true;\r\n const row = $('
    ');\r\n data.forEach(rec => {\r\n const col = $('
    ');\r\n const audio = $(``);\r\n row.append(col.append(audio));\r\n self.phsStopAudio(audio, '#ps-phs-callLogs-tab');\r\n first = false;\r\n });\r\n container.append(row);\r\n }\r\n });\r\n }\r\n },\r\n onContentReady: (ev) => {\r\n window['InstanceBase'].hideFilterIconOnDevExGrid(ev);\r\n window['fixShowLinesDevExGrid'](ev.element[0], true);\r\n if (!window['setActiveTodayBtn']) $('.ps-phs-callLogs-main .settings-dateRange-btn').removeClass('active');\r\n $('.root-preloader').hide();\r\n },\r\n onEditorPreparing: (ev) => {\r\n window['InstanceBase'].applyFilterOnDevExGrid(ev);\r\n },\r\n onRowExpanding: (e) => {\r\n e.component.collapseAll(-1);\r\n },\r\n pager: {\r\n allowedPageSizes: [20, 50, 100, 150],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 20\r\n },\r\n rowAlternationEnabled: true,\r\n showBorders: true,\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * phsRoboCallLogs(): Function\r\n * Load page Robo Call Logs from Settings - Phone Settings\r\n */\r\n phsRoboCallLogs() {\r\n const self = this;\r\n let LastRoboCallCallsType = false;\r\n\r\n $('#ps-phs-roboCallLogs-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-phs-roboCallLogs-content', 'SettingsPhoneRoboCallLogs', () => {\r\n window['InstanceBase'].dateRangeWithYearWeekDates('.ps-phs-roboCallLogs-main');\r\n phsRoboCallLogsDateRange();\r\n phsGvRoboCallLogs();\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n })\r\n })\r\n\r\n function phsRoboCallLogsDateRange() {\r\n const year = ($(`.ps-phs-roboCallLogs-main .ywftDateRange-devExYear`) as any).dxSelectBox('instance');\r\n const from = ($(`.ps-phs-roboCallLogs-main .ywftDateRange-devExDateFrom`) as any).dxDateBox('instance');\r\n const to = ($(`.ps-phs-roboCallLogs-main .ywftDateRange-devExDateTo`) as any).dxDateBox('instance');\r\n\r\n from.on('valueChanged', (e) => {\r\n //let param = false\r\n if (!LastRoboCallCallsType) {\r\n\r\n //param = e.name == 'opened' && e.value ? true : false;\r\n //if (param && e.name == 'text')\r\n phsUpdateRoboCallLogs()\r\n }\r\n })\r\n to.on('valueChanged', () => {\r\n phsUpdateRoboCallLogs()\r\n })\r\n\r\n $('.ps-phs-roboCallLogs-day-btn').off('click').on('click', (ev) => {\r\n LastRoboCallCallsType = true;\r\n year.option('value', new Date().getFullYear());\r\n setTimeout(() => {\r\n LastRoboCallCallsType = true;\r\n from.option('value', new Date());\r\n LastRoboCallCallsType = true;\r\n to.option('value', new Date());\r\n $(ev.currentTarget).addClass('active');\r\n }, 500);\r\n })\r\n }\r\n\r\n function phsGvRoboCallLogs() {\r\n const startDate = ($('.ps-phs-roboCallLogs-main .ywftDateRange-devExDateFrom') as any).dxDateBox('option', 'value');\r\n const endDate = ($('.ps-phs-roboCallLogs-main .ywftDateRange-devExDateTo') as any).dxDateBox('option', 'value');\r\n // let newEndDate = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate() + 1);\r\n const newStartDate = window['moment'](startDate).startOf('day').toDate();\r\n const newEndDate = window['moment'](endDate).endOf('day').toDate();\r\n\r\n $('.ps-phs-gvRoboCallLogs').dxDataGrid({\r\n dataSource: window['DevExpress'].data.AspNet.createStore({\r\n key: 'Id',\r\n loadMethod: 'GET',\r\n loadUrl: '/RoboCall/History',\r\n }),\r\n columns: [\r\n {\r\n caption: 'Date',\r\n cellTemplate: (container, options) => {\r\n const data = options.data.Created;\r\n container.html(window['moment'](data + 'Z').utcOffset(window['userTimezone'].Offset).format('L, LT'));\r\n },\r\n dataField: 'Created',\r\n sortOrder: 'desc',\r\n },\r\n { dataField: 'Subject' },\r\n { dataField: 'VoiceMail' },\r\n { dataField: 'LocalPresence' },\r\n { dataField: 'Routing' },\r\n {\r\n calculateDisplayValue: (v) => { return v.Delay / 1000; },\r\n dataField: 'Delay',\r\n dataType: 'string',\r\n width: 50\r\n },\r\n ],\r\n filterRow: {\r\n applyFilter: 'onClick',\r\n visible: true\r\n },\r\n filterValue: [\r\n ['Created', '>=', window['moment'](newStartDate).format('YYYY-MM-DD')],\r\n 'and',\r\n ['Created', '<=', window['moment'](newEndDate).format('YYYY-MM-DD')],\r\n ],\r\n height: '100%',\r\n masterDetail: {\r\n enabled: true,\r\n template: (content, info) => {\r\n const div = $('
    ');\r\n content.append(div);\r\n div.dxDataGrid({\r\n dataSource: window['DevExpress'].data.AspNet.createStore({\r\n key: 'Row.CID',\r\n loadMethod: 'GET',\r\n loadParams: {\r\n Id: info.key\r\n },\r\n loadUrl: '/RoboCall/HistoryItem'\r\n }),\r\n columns: [\r\n { dataField: 'Business.Company_Name', caption: 'Company' },\r\n {\r\n caption: 'Date',\r\n cellTemplate: (container, options) => {\r\n const data = options.value;\r\n container.html(window['moment'](data + 'Z').utcOffset(window['userTimezone'].Offset).format('L, LT'));\r\n },\r\n dataField: 'Row.Created',\r\n },\r\n { dataField: 'Info.From', caption: 'From' },\r\n { dataField: 'Info.To', caption: 'To' },\r\n {\r\n caption: 'Records',\r\n cellTemplate: (el, info) => {\r\n const recs = info.value;\r\n\r\n recs.forEach(x => {\r\n $(el).addClass('ps-phs-gvRoboCallLogs-audio-td');\r\n const path = info.data.Info.Sid + '/' + x.Sid;\r\n const audio = $(``);\r\n self.phsStopAudio(audio, '#ps-phs-roboCallLogs-tab');\r\n el.append(audio);\r\n });\r\n },\r\n dataField: 'Info.Records',\r\n width: '40%',\r\n },\r\n ],\r\n onEditorPreparing: (e) => {\r\n window['InstanceBase'].devExSearchFilterDelay(e);\r\n window['InstanceBase'].devExSearchFilterMin(e);\r\n },\r\n showBorders: true,\r\n });\r\n }\r\n },\r\n onContentReady: (ev) => {\r\n window['InstanceBase'].hideFilterIconOnDevExGrid(ev);\r\n window['fixShowLinesDevExGrid'](ev.element[0], true);\r\n $('.root-preloader').hide();\r\n },\r\n onEditorPreparing: (ev) => {\r\n window['InstanceBase'].applyFilterOnDevExGrid(ev);\r\n },\r\n pager: {\r\n allowedPageSizes: [20, 50, 100, 150],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 20\r\n },\r\n rowAlternationEnabled: true,\r\n showBorders: true,\r\n });\r\n }\r\n\r\n function phsUpdateRoboCallLogs() {\r\n //if (changedDate) {\r\n // $('.ps-phs-roboCallLogs-dateRange-btns .settings-dateRange-btn').removeClass('active');\r\n // if (LastRoboCallCallsType) {\r\n // $(`.settings-dateRange-btn-roboCallLogs-${LastRoboCallCallsType}`).addClass('active');\r\n // LastRoboCallCallsType = undefined;\r\n // }\r\n //}\r\n if (!LastRoboCallCallsType) {\r\n $('.ps-phs-roboCallLogs-day-btn').removeClass('active');\r\n LastRoboCallCallsType = undefined;\r\n } else {\r\n LastRoboCallCallsType = undefined;\r\n }\r\n const startDate = ($('.ps-phs-roboCallLogs-main .ywftDateRange-devExDateFrom') as any).dxDateBox('option', 'value');\r\n const endDate = ($('.ps-phs-roboCallLogs-main .ywftDateRange-devExDateTo') as any).dxDateBox('option', 'value');\r\n // let newEndDate = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate() + 1);\r\n const newStartDate = window['moment'](startDate).startOf('day').toDate();\r\n const newEndDate = window['moment'](endDate).endOf('day').toDate();\r\n\r\n $('.ps-phs-gvRoboCallLogs').dxDataGrid('instance').option('filterValue', [\r\n ['Created', '>=', window['moment'](newStartDate).format('YYYY-MM-DD')],\r\n 'and',\r\n ['Created', '<=', window['moment'](newEndDate).format('YYYY-MM-DD')],\r\n ])\r\n }\r\n }\r\n\r\n /**\r\n * phsStopAudio(): Function\r\n * Stop plaing audio on hide tab & on close Settings\r\n * \r\n * @param audio - DOM element audio\r\n * @param tabId - tab id on Phone Settings\r\n */\r\n phsStopAudio(audio, tabId) {\r\n $(`${tabId}, #ps-phone-tab`).on('hide.bs.tab', () => {\r\n stopAudio(audio);\r\n })\r\n\r\n $('#ps-toggle-check').on('click', () => {\r\n stopAudio(audio);\r\n });\r\n\r\n function stopAudio(audio) {\r\n (audio[0] as any).pause();\r\n (audio[0] as any).currentTime = 0;\r\n }\r\n }\r\n\r\n /**\r\n * phsVerifiedCallerIds(): Function\r\n * Load page Verified Caller Ids from Settings - Phone Settings\r\n */\r\n phsVerifiedCallerIds() {\r\n const self = this;\r\n let arr = [];\r\n\r\n $('#ps-phs-verifiedId-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-phs-verifiedId-content', 'SettingsPhoneVerifiedCallerId', () => {\r\n verifiedIdHeader();\r\n gvVerifiedId();\r\n\r\n window['InstanceBase'].clickOnLabelForDevExField('.form-label');\r\n })\r\n })\r\n\r\n function dataSourceOutgoingGrid() {\r\n $.get('/Twilio/Outgoings', data => {\r\n try {\r\n $('.gvVerifiedCallerId').dxDataGrid('option', 'dataSource', data);\r\n }\r\n catch (ex) {\r\n console.error(ex);\r\n }\r\n arr = data;\r\n });\r\n }\r\n\r\n function editFriendlyNameCell() {\r\n $('.gvVerifiedCallerId .cellEdit').off('click').on('click', (ev) => {\r\n $('#editFriendlyNameModal').dxPopup({\r\n closeOnOutsideClick: true,\r\n contentTemplate: () => {\r\n const div = $('
    ')\r\n const p = $('

    Add new friendly name

    ');\r\n const formRow = $('
    ');\r\n const col = $('
    ');\r\n const colAuto = $('
    ');\r\n const input = $('');\r\n const button = $('');\r\n div.append(p).append(formRow);\r\n formRow.append(col).append(colAuto);\r\n col.append(input);\r\n colAuto.append(button);\r\n\r\n input.on('input', () => {\r\n input.val() == '' ? $(button).prop('disabled', true) : $(button).prop('disabled', false);\r\n })\r\n\r\n // input.dxTextBox({\r\n // onInput(e) {\r\n // (e.component as any)._changedValue == '' ? $(button).prop('disabled', true) : $(button).prop('disabled', false);\r\n // },\r\n // });\r\n\r\n button.off('click').on('click', (e) => {\r\n e.preventDefault();\r\n const newFriendlyName = input.val();\r\n const thisSid = ev.currentTarget.dataset.sid;\r\n $.post('/Twilio/UpdateOutgoingPhone', { sid: thisSid as string, name: newFriendlyName as string }, (data) => {\r\n $('#editFriendlyNameModal').dxPopup('hide');\r\n dataSourceOutgoingGrid();\r\n $('.gvVerifiedCallerId').dxDataGrid('repaint');\r\n })\r\n\r\n })\r\n return div;\r\n },\r\n // onShown: function () {\r\n // $('.dx-texteditor-input').focus();\r\n // },\r\n position: {\r\n at: 'bottom',\r\n my: { x: 'center', y: 'top' },\r\n of: $('.gvVerifiedCallerId .cellEdit')\r\n },\r\n showCloseButton: false,\r\n showTitle: false,\r\n visible: true,\r\n height: 72,\r\n width: 390,\r\n })\r\n });\r\n }\r\n\r\n function errorValidationPhoneNumber(msg) {\r\n $('.ps-phs-verifiedId-phoneNumber-confirm-section').show();\r\n $('.ps-phs-verifiedId-phoneNumber-confirm').empty();\r\n $('.ps-phs-verifiedId-phoneNumber-confirm-section > p').html(msg).addClass('error');\r\n }\r\n\r\n function gvVerifiedId() {\r\n dataSourceOutgoingGrid();\r\n\r\n $('.gvVerifiedCallerId').dxDataGrid({\r\n //dataSource: arr,\r\n columns: [\r\n // { dataField: 'Default' },\r\n {\r\n caption: 'Phone Number',\r\n cellTemplate: (container, options) => {\r\n const phone = options.value;\r\n const correctPhone = `${phone.slice(0, 2)} (${phone.slice(2, 5)}) ${phone.slice(5, 8)} - ${phone.slice(8)} `;\r\n $(`
    ${correctPhone}
    `).appendTo(container);\r\n },\r\n dataField: 'PhoneNumber',\r\n },\r\n {\r\n caption: 'Friendly Name',\r\n cellTemplate: (container, options) => {\r\n $(`
    ${options.value} `).appendTo(container);\r\n },\r\n dataField: 'FriendlyName',\r\n },\r\n // { dataField: 'Delete' }\r\n ],\r\n editing: {\r\n mode: 'row',\r\n allowDeleting: true,\r\n confirmDelete: false\r\n },\r\n height: '100%',\r\n onCellPrepared: () => {\r\n editFriendlyNameCell();\r\n },\r\n onContentReady: (e) => {\r\n window['fixShowLinesDevExGrid'](e.element[0], true);\r\n $('.root-preloader').hide();\r\n },\r\n onRowRemoved: (e) => {\r\n $.post(`/Twilio/DeleteOutgoing?sid=${e.data.Sid}`);\r\n },\r\n // height: 100,\r\n pager: {\r\n allowedPageSizes: [20, 50, 100, 150],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 20\r\n },\r\n rowAlternationEnabled: true,\r\n showBorders: true,\r\n });\r\n\r\n //$(window).on('resize', () => {\r\n // SetHeightOutgoingGrid();\r\n //})\r\n }\r\n\r\n //function SetHeightOutgoingGrid() {\r\n // const heightGrid = $('#ps-phs-verifiedId-content .ps-phone-main').height() - $('.ps-phone-form').height() - 8;\r\n // $('.gvVerifiedCallerId').dxDataGrid('instance').option('height', heightGrid);\r\n //}\r\n\r\n function validationPhoneNumber(codeVerif) {\r\n $('.ps-phs-verifiedId-phoneNumber-confirm-section').show();\r\n $('.ps-phs-verifiedId-phoneNumber-confirm-section > p').removeClass('error').html('Validation Code');\r\n ($('.ps-phs-verifiedId-phoneNumber-confirm') as any).dxTextBox({\r\n readOnly: true,\r\n value: codeVerif\r\n });\r\n }\r\n\r\n function verifiedIdHeader() {\r\n ($('.ps-phs-verifiedId-phoneNumber') as any).dxTextBox({\r\n mask: '+1 (X00) 000-0000',\r\n maskInvalidMessage: 'The phone must have a correct USA phone format',\r\n maskRules: { X: /[02-9]/ },\r\n onInput: (el) => {\r\n if (el.component._value.trim().length == 10) {\r\n $('.ps-phs-verifiedId-phoneNumber-btn').prop('disabled', false);\r\n } else {\r\n $('.ps-phs-verifiedId-phoneNumber-btn').prop('disabled', true);\r\n $('.ps-phs-verifiedId-phoneNumber-confirm-section').hide();\r\n try { ($('.ps-phs-verifiedId-phoneNumber-confirm') as any).dxTextBox('dispose') } catch (ex) { };\r\n }\r\n },\r\n }).dxValidator({\r\n validationRules: [{\r\n message: 'The phone must have a correct USA phone format',\r\n pattern: /^[02-9]\\d{9}$/,\r\n type: 'pattern',\r\n }],\r\n });\r\n\r\n $('.ps-phs-verifiedId-phoneNumber-ext').dxTextBox({\r\n placeholder: 'EXT'\r\n });\r\n\r\n $('.ps-phs-verifiedId-phoneNumber-btn').off('click').on('click', () => {\r\n const verPhoneField = $('.ps-phs-verifiedId-phoneNumber').dxTextBox('instance').option('value');\r\n const verExtField = $('.ps-phs-verifiedId-phoneNumber-ext').dxTextBox('instance').option('value');\r\n $.post('/Twilio/CreateOutgoing', {\r\n country: 'us',\r\n ext: verExtField,\r\n phone: verPhoneField,\r\n }, (data) => {\r\n const dataObject = JSON.parse(data);\r\n if (dataObject.phone_number) {\r\n validationPhoneNumber(dataObject.validation_code);\r\n } else {\r\n errorValidationPhoneNumber(dataObject.message);\r\n }\r\n });\r\n });\r\n\r\n $('.ps-phs-verifiedId-addNumber-btn').off('click').on('click', () => {\r\n $('.ps-phs-verifiedId-phoneNumber').dxTextBox('instance').focus();\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * phsVoicemailLibrary(): Function\r\n * Load page Voicemail Library Ids from Settings - Phone Settings\r\n */\r\n phsVoicemailLibrary() {\r\n const self = this;\r\n $('#ps-phs-voicemailLibrary-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n self.psLoadTabContent('#ps-phs-voicemailLibrary-content', 'SettingsPhoneVoicemailLibrary', () => {\r\n gvVoicemailLibrary();\r\n voicemailLibraryBtns();\r\n })\r\n })\r\n\r\n function gvVoicemailLibrary() {\r\n $('#gvVoicemailLibrary').dxDataGrid({\r\n dataSource: window['DevExpress'].data.AspNet.createStore({\r\n key: 'Id',\r\n loadUrl: '/Audio?category=Voice',\r\n }),\r\n columns: [\r\n { dataField: 'Name' },\r\n {\r\n caption: 'Records',\r\n cellTemplate: (container, options) => {\r\n $(container).addClass('gvVoicemailLibrary-audio-td');\r\n const audio = $(``);\r\n self.phsStopAudio(audio, '#ps-phs-voicemailLibrary-tab');\r\n container.append(audio);\r\n },\r\n width: 265,\r\n },\r\n {\r\n cellTemplate: (container, options) => {\r\n const download = $('
    ');\r\n const del = $('
    ');\r\n const div = $('
    ');\r\n div.append(download).append(del);\r\n container.append(div);\r\n\r\n download.dxButton({\r\n hint: 'Download file',\r\n icon: 'download',\r\n onClick: () => {\r\n window.open(`/Audio/${(options as any).key}`);\r\n },\r\n });\r\n\r\n del.dxButton({\r\n hint: 'Remove file',\r\n icon: 'remove',\r\n onClick: () => {\r\n const DeleteVoicemailLibraryAudio = () => {\r\n $.ajax({\r\n url: `/Audio/${(options as any).key}`, method: 'DELETE', success: () => {\r\n $('#gvVoicemailLibrary').dxDataGrid('instance').refresh();\r\n }\r\n });\r\n }\r\n\r\n const objModal = {\r\n callback: DeleteVoicemailLibraryAudio,\r\n classYesBtn: 'deleteVoicemailAudio',\r\n textModal: 'Are You sure want to delete?',\r\n textNoBtn: 'No',\r\n textYesBtn: 'Yes',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(objModal);\r\n },\r\n });\r\n },\r\n width: 90,\r\n }\r\n ],\r\n height: '100%',\r\n onContentReady: () => {\r\n //window['fixShowLinesDevExGrid'](e.element[0], true);\r\n $('.root-preloader').hide();\r\n },\r\n pager: {\r\n allowedPageSizes: [20, 50, 100, 150],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 20\r\n },\r\n rowAlternationEnabled: true,\r\n showBorders: true\r\n });\r\n }\r\n\r\n function voicemailLibraryBtns() {\r\n $('#ps-phs-gvVoicemailLibrary-upload-btn').dxButton({\r\n hint: 'Upload file',\r\n icon: 'add',\r\n onClick: () => {\r\n $('#ps-phs-voicemailLibrary-add').click();\r\n },\r\n });\r\n\r\n $('#ps-phs-voicemailLibrary-add').off('change').on('change', (e) => {\r\n const data = window['InstanceBase'].addOneFileMax2MB(e.currentTarget, 'audio');\r\n data.append('category', 'Voice');\r\n\r\n $.ajax({\r\n contentType: false,\r\n data: data,\r\n processData: false,\r\n success: () => {\r\n $('#gvVoicemailLibrary').dxDataGrid('instance').refresh();\r\n $('#ps-phs-voicemailLibrary-add').val('');\r\n },\r\n type: 'post',\r\n url: '/Audio',\r\n });\r\n });\r\n }\r\n }\r\n // #endregion\r\n\r\n // #region ======================================= Plan & Upgrade Settings ==================================\r\n /**\r\n * planUpgradeSettings(): Function\r\n * Load and show Plan & Upgrade on Settings -> Price page (pricePages.ts)\r\n */\r\n planUpgradeSettings() {\r\n price.PricePages('.ps-planUpgrade');\r\n //$('.btn-price-plan').off('click').on('click', (e) => {\r\n // e.preventDefault();\r\n\r\n // const packId = $(e.currentTarget).data('packid');\r\n // if (packId == undefined) return;\r\n\r\n // if ($(e.currentTarget).hasClass('btn-inactive')) {\r\n // if ($('.btn-tochange').length > 0) {\r\n // self.ShowModalPS(packId, e);\r\n // }\r\n // return;\r\n // }\r\n // if ($('.btn-inactive').length > 0) {\r\n // self.ShowModalPS(packId, e);\r\n // return;\r\n // }\r\n // $.post('/Price/CurrentPlan', (data) => {\r\n // if (data) {\r\n // self.ShowModalPS(packId, e);\r\n // return;\r\n // } else {\r\n // $.post('/Price/GetPackPrice', { id: packId, forYear: false },\r\n // function (data) {\r\n // if (data.email == null) {\r\n // ($('#login-modal') as any).modal('show');\r\n // }\r\n // else {\r\n // let price = '' + data.price;\r\n // price = price + ',00';\r\n // window['InstanceBase'].showPurchaseModal(data.email, price, packId, false);\r\n // }\r\n // });\r\n // }\r\n // });\r\n //});\r\n\r\n\r\n //function CheckLeadsMinuts(leadsMinuts) {\r\n // const input = $(`.packages-${leadsMinuts}-content .packages-${leadsMinuts}-switch`).find(`.packages-${leadsMinuts}-switch-input`);\r\n // const b = input.is(':checked');\r\n // $(`.packages-balance-input-${leadsMinuts}-falls`).prop('disabled', b);\r\n // $(` .packages-balance-input-${leadsMinuts}-buy`).prop('disabled', b);\r\n // $('.packages-' + leadsMinuts + '-check').prop('disabled', b);\r\n // (input as any).attr('checked', !b);\r\n // //$.post('/ProfileAndSettings/GetCards', (data) => {\r\n // // if (data.Cards.length > 0) {\r\n // // let input = $(`.packages-${leadsMinuts}-content .packages-${leadsMinuts}-switch`).find(`.packages-${leadsMinuts}-switch-input`);\r\n // // (input as any).attr('checked', !input.is(':checked'))\r\n // // } else {\r\n // // $('#ps-toggle-check').prop('checked', true);\r\n // // $('#ps-payment-tab').trigger('click');\r\n // // window['showAddCard'] = true;\r\n // // }\r\n // // $('.root-preloader').hide();\r\n // //})\r\n //}\r\n //$('.packages-leads-content .packages-leads-switch').off('click').on('click', (e) => {\r\n // //$('.root-preloader').show();\r\n // CheckLeadsMinuts('leads');\r\n //})\r\n //$('.packages-minutes-content .packages-minutes-switch').off('click').on('click', (e) => {\r\n // //$('.root-preloader').show();\r\n // CheckLeadsMinuts('minutes')\r\n //})\r\n //$('.packages-price-list .list-group-item').off('click').on('click', (e) => {\r\n // $(e.currentTarget).find('input[type=\"radio\"]').prop('checked', true);\r\n //})\r\n //window['InstanceBase'].ActionPrice('#leads-content');\r\n //window['InstanceBase'].ActionPrice('#minutes-content');\r\n //this.AutoRecharge('Minutes', '#minutes-content');\r\n //this.AutoRecharge('Leads', '#leads-content');\r\n window['CheckAuto'] = function () {\r\n //$.post('/Account/Check', console.log);\r\n }\r\n }\r\n // #endregion\r\n\r\n // #region ======================================= Promo Code ==================================\r\n /**\r\n * promoCodesSettings(): Function\r\n * Load and show Promo Code Page on Settings\r\n */\r\n promoCodesSettings() {\r\n const self = this;\r\n let status;\r\n\r\n self.srcPromoCodes = (window['DevExpress'] as any).data.AspNet.createStore({\r\n loadUrl: '/ProfileAndSettings/GetPromoCodes',\r\n key: 'Id',\r\n insertUrl: '/ProfileAndSettings/InsertOrder',\r\n updateUrl: '/ProfileAndSettings/UpdateOrder',\r\n deleteUrl: '/ProfileAndSettings/DeleteOrder',\r\n onBeforeSend: function (method, ajaxOptions) {\r\n ajaxOptions.xhrFields = { withCredentials: true };\r\n },\r\n\r\n /*loadMethod: 'POST',*/\r\n onLoading: (loadOptions) => {\r\n $('.root-preloader').show();\r\n self.log('srcPromoCodes.OnLoading', loadOptions)\r\n },\r\n onLoaded: (result) => {\r\n $('.root-preloader').hide();\r\n self.log('srcPromoCodes.OnLoaded', result)\r\n }\r\n });\r\n\r\n $('#psPromoCodes').dxDataGrid({\r\n dataSource: (self.srcPromoCodes as any),\r\n columns: [\r\n {\r\n caption: 'Code Name',\r\n dataField: 'PromotionCode',\r\n validationRules: [{\r\n message: 'The \"Code Name\" field is required.',\r\n type: 'required',\r\n }]\r\n },\r\n {\r\n caption: 'Leads Credits',\r\n dataField: 'LeadsCount',\r\n validationRules: [{\r\n message: 'The \"Leads Credits\" field is required.',\r\n type: 'required',\r\n }, {\r\n message: 'Minimum 1 max 100000',\r\n pattern: /^(100000|([1-9][0-9][0-9][0-9][0-9])|([1-9][0-9][0-9][0-9])|([1-9][0-9][0-9])|([1-9][0-9])|[1-9])$/i,\r\n type: 'pattern',\r\n }]\r\n },\r\n {\r\n caption: 'Minutes Credits',\r\n dataField: 'MinutesCount',\r\n validationRules: [{\r\n message: 'The \"Minutes Credits\" field is required.',\r\n type: 'required',\r\n }, {\r\n message: 'Minimum 1 max 100',\r\n pattern: /^(100000|([1-9][0-9][0-9][0-9][0-9])|([1-9][0-9][0-9][0-9])|([1-9][0-9][0-9])|([1-9][0-9])|[1-9])$/i,\r\n type: 'pattern',\r\n }]\r\n },\r\n {\r\n caption: 'Expiration Date',\r\n dataField: 'ExpiresAt',\r\n dataType: 'date',\r\n format: (date) => {\r\n const month = (date as any).getMonth() + 1,\r\n day = (date as any).getDate(),\r\n year = (date as any).getFullYear()\r\n\r\n return month + '/' + day + '/' + year;\r\n },\r\n validationRules: [{\r\n message: 'The \"Expiration Date\" field is required.',\r\n type: 'required',\r\n }]\r\n },\r\n {\r\n allowEditing: false,\r\n dataField: 'count',\r\n },\r\n {\r\n dataField: 'Limit',\r\n validationRules: [{\r\n message: 'The \"Limit\" field is required.',\r\n type: 'required',\r\n }, {\r\n message: 'Minimum 1 max 100',\r\n pattern: /^(100|([1-9][0-9])|[1-9])$/i,\r\n type: 'pattern',\r\n }]\r\n },\r\n {\r\n allowEditing: false,\r\n cellTemplate: (element: JQuery, data) => {\r\n const date = window['moment'](data.data.ExpiresAt).format('MM/DD/YYYY');\r\n const exDays = Math.floor(((new Date(date)).getTime() - Date.now()) / (86400 * 1000));\r\n if (data.data.count == data.data.Limit)\r\n return element.html('Limited');\r\n else if (exDays >= -1)\r\n return element.html('Active');\r\n else\r\n return element.html('Expired');\r\n },\r\n dataField: 'Status',\r\n },\r\n {\r\n allowEditing: false,\r\n cellTemplate: (cell, e) => {\r\n const date = window['moment'](e.data.ExpiresAt).format('MM/DD/YYYY');\r\n const exDays = Math.floor(((new Date(date)).getTime() - Date.now()) / (86400 * 1000));\r\n if (e.data.count == e.data.Limit)\r\n return '';\r\n if (exDays >= -1) {\r\n status = 'Active';\r\n\r\n const act: JQuery = $('Invite')\r\n act.on('click', c => {\r\n c.preventDefault();\r\n //self.removeSaveSearchCriteria(e.data.SearchHistory.Id);\r\n self.pcsInvitationModalLoad(() => {\r\n $('#promoCode-input').text(e.data.PromotionCode);\r\n })\r\n })\r\n return cell.append(act);\r\n\r\n } else {\r\n status = 'Expired';\r\n }\r\n return cell.html('' + status + '');\r\n },\r\n dataField: 'Invite',\r\n }\r\n ],\r\n editing: {\r\n allowAdding: true,\r\n allowDeleting: true,\r\n allowUpdating: true,\r\n mode: 'form',\r\n useIcons: true\r\n },\r\n onEditorPreparing: (e) => {\r\n window['InstanceBase'].devExSearchFilterDelay(e);\r\n window['InstanceBase'].devExSearchFilterMin(e);\r\n },\r\n showBorders: true,\r\n });\r\n }\r\n\r\n /**\r\n * pcsInvitationModal(callback): Function\r\n * @param callback\r\n */\r\n pcsInvitationModal(callback) {\r\n const self = this;\r\n $('#promoCode-email').off('input').on('input', (e) => {\r\n if (!self.emailReg.test(($(e.currentTarget) as any).val())) {\r\n $(e.currentTarget).addClass('is-invalid');\r\n $('#pc-validEmail').show();\r\n $('#pc-exist, #pc-notexist').hide();\r\n $('#promoCode-yes-btn').prop('disabled', true);\r\n } else {\r\n $(e.currentTarget).removeClass('is-invalid');\r\n $('#pc-validEmail, #pc-exist, #pc-notexist').hide();\r\n self.pcsInvitationModalIsEmailExist($(e.currentTarget).val());\r\n $('#promoCode-yes-btn').prop('disabled', false);\r\n }\r\n });\r\n $('#promoCode-yes-btn').on('click', () => {\r\n const promoCode = $('#promoCode-input').text();\r\n const email = $('#promoCode-email').val();\r\n self.pcsInvitationModalSend(promoCode, email);\r\n });\r\n\r\n if (callback) callback();\r\n ($('#promoCodeInvitationModal') as any).modal('show');\r\n }\r\n\r\n /**\r\n * pcsInvitationModalIsEmailExist(email): Function\r\n * Check, if this email is registered\r\n * @param email\r\n */\r\n pcsInvitationModalIsEmailExist(email) {\r\n $.ajax({\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/IsEmailExist',\r\n data: { email: email },\r\n dataType: 'json',\r\n crossDomain: true,\r\n success: function (result) {\r\n if (result) {\r\n $('#pc-exist').show();\r\n $('#pc-notexist').hide();\r\n $('#promoCode-yes-btn').prop('disabled', true);\r\n } else {\r\n $('#pc-exist').hide();\r\n $('#pc-notexist').show();\r\n $('#promoCode-yes-btn').prop('disabled', false);\r\n }\r\n // ($('#promoCodeInvitationModal') as any).modal('hide');\r\n },\r\n error: function () {\r\n alert('failed to send Invitation Email');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * pcsInvitationModalLoad(callback): Function\r\n * @param callback\r\n */\r\n pcsInvitationModalLoad(callback?) {\r\n const self = this;\r\n if ($('#promoCodeInvitationModal').length) {\r\n self.pcsInvitationModal(callback);\r\n } else {\r\n $.post('/Popups/PromoCodeInvitationModal', data => {\r\n $('body').append(data);\r\n self.pcsInvitationModal(callback);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * pcsInvitationModalSend(promoCode, email): Function\r\n * Send requets with invitation\r\n * @param promoCode\r\n * @param email\r\n */\r\n pcsInvitationModalSend(promoCode, email) {\r\n $.post('/ProfileAndSettings/SendInvitation', { value: promoCode, email: email }, data => {\r\n if (data == 'Accepted')\r\n alert('Invitation Email Successfully Sent')\r\n else\r\n alert('Something\\'s wrong, email not send')\r\n });\r\n }\r\n // #endregion\r\n\r\n // #region ======================================= Purchased History Settings ==================================\r\n /**\r\n * purchasedHistorySettings(): Function\r\n * Load and show Purchased History Settings\r\n */\r\n purchasedHistorySettings() {\r\n $('#gvPurchasedHistory').dxDataGrid({\r\n dataSource: window['DevExpress'].data.AspNet.createStore({\r\n loadUrl: '/Account/HistoryTransaction'\r\n }),\r\n allowColumnReordering: true,\r\n allowColumnResizing: true,\r\n columnAutoWidth: true,\r\n columns: [\r\n {\r\n caption: 'Item',\r\n dataField: 'Item'\r\n }, {\r\n dataField: 'Quantity',\r\n dataType: 'string',\r\n }, {\r\n caption: 'Paid $',\r\n cellTemplate: (container, item) => {\r\n const data = item.data;\r\n $(`
    $ ${data.Amount}
    `).appendTo(container);\r\n },\r\n dataField: 'Amount',\r\n dataType: 'string',\r\n }, {\r\n caption: 'PaymentMethod',\r\n cellTemplate: (container, item) => {\r\n const data = item.data;\r\n let cardImg;\r\n switch (data.PaymentType) {\r\n case 'Amex': cardImg = 'logo-americanExpress.svg'; break;\r\n case 'Visa': cardImg = 'logo-visa.svg'; break;\r\n case 'Mast': cardImg = 'logo-mastercard.svg'; break;\r\n case 'Disc': cardImg = 'logo-discoverCard.svg'; break;\r\n }\r\n $(`
    \"${data.PaymentType}${data.PaymentType} ${data.PaymentName} ending in ...${data.PaymentEnd}
    `).appendTo(container);\r\n },\r\n }, {\r\n dataField: 'Date',\r\n dataType: 'datetime',\r\n sortOrder: 'desc',\r\n cellTemplate: (container, options) => {\r\n const data = options.data.Date + 'Z';\r\n container.html(window['moment'](data).utcOffset(window['userTimezone'].Offset).format('L, LT'));\r\n },\r\n\r\n }\r\n ],\r\n hoverStateEnabled: true,\r\n onContentReady: (e) => {\r\n /*window['fixShowLinesDevExGrid'](e.element[0], true);*/\r\n e.component.option('height', '100%');\r\n $('.root-preloader').hide();\r\n },\r\n pager: {\r\n allowedPageSizes: [20, 50, 100, 150],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 20\r\n },\r\n rowAlternationEnabled: true,\r\n showColumnLines: true,\r\n showBorders: true,\r\n });\r\n }\r\n // #endregion\r\n\r\n // #region ======================================= Referrals Settings ==================================\r\n /**\r\n * referralsSettings(): Function\r\n * Create and show Settings - Referrals page\r\n */\r\n referralsSettings() {\r\n const self = this;\r\n\r\n self.rsGvUserReferrals();\r\n self.rsGetReferralLink();\r\n self.rsButtons();\r\n }\r\n\r\n /**\r\n * rsButtons(): Function\r\n * Referrals Settings buttons actions \r\n */\r\n rsButtons() {\r\n const self = this;\r\n\r\n // send referral link to email\r\n $('#ps-rs-inviteReferral-btn').off('click').on('click', () => {\r\n window['InstanceBase'].loadInvitePeopleReferralModal();\r\n })\r\n\r\n // copy on bufer referral link\r\n $('#ps-rs-link-id').off('click').on('click', () => {\r\n const copyText = document.getElementById('ps-rs-link-path');\r\n if (navigator.clipboard) {\r\n navigator.clipboard.writeText((copyText as any).value);\r\n return;\r\n }\r\n });\r\n\r\n // refresh #gvUserReferrals\r\n $('#ps-rs-gvUserReferrals-refresh-btn').off('click').on('click', () => {\r\n $('#gvUserReferrals').dxDataGrid('instance').refresh();\r\n });\r\n\r\n $('.root-preloader').hide();\r\n }\r\n\r\n /**\r\n * rsGetReferralLink(): Function\r\n * Get referral link data and show it\r\n */\r\n rsGetReferralLink() {\r\n $.ajax({\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/GetReferralLink',\r\n dataType: 'json',\r\n crossDomain: true,\r\n success: (r) => {\r\n $('#ps-rs-link-path').val(r.result);\r\n $('#ps-rs-link-text').val(r.result);\r\n $('#ps-rs-link-id').show();\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * rsGvUserReferrals(): Function\r\n * Create and show DevExtreme grid #gvUserReferrals\r\n */\r\n rsGvUserReferrals() {\r\n const userReferralsDataSource = window['DevExpress'].data.AspNet.createStore({\r\n loadUrl: '/MultipleNodeSelection/UserReferals'\r\n });\r\n\r\n $('#gvUserReferrals').dxDataGrid({\r\n dataSource: userReferralsDataSource,\r\n columns: [\r\n {\r\n caption: 'Email',\r\n dataField: 'Email',\r\n },\r\n {\r\n caption: 'Registration Date',\r\n dataField: 'RegistrationDate',\r\n dataType: 'datetime'\r\n },\r\n {\r\n caption: 'Invitation Date',\r\n dataField: 'InvitationDate',\r\n dataType: 'datetime',\r\n sortOrder: 'desc'\r\n },\r\n {\r\n caption: 'Referral Bonus',\r\n dataField: 'ReferralBonus',\r\n dataType: 'string'\r\n },\r\n {\r\n dataField: 'Status',\r\n },\r\n {\r\n alignment: 'center',\r\n buttons: [{\r\n template: (_, data) => {\r\n if (data.data.Status == 'Sent') {\r\n const btn = $(``).text('Resend')\r\n btn.off('click').on('click', (e) => {\r\n const resendedEmail = $(e.currentTarget).data('resend_email');\r\n window['InstanceBase'].loadInvitePeopleReferralModal(resendedEmail);\r\n })\r\n return btn;\r\n }\r\n }\r\n }],\r\n caption: 'Resend Email',\r\n cssClass: 'resendEmail-col',\r\n //dataField: 'Email',\r\n type: 'buttons',\r\n }\r\n ],\r\n height: '100%',\r\n hoverStateEnabled: true,\r\n onContentReady: (e) => {\r\n window['fixShowLinesDevExGrid'](e.element[0], true);\r\n },\r\n onEditorPreparing: (ev) => {\r\n window['InstanceBase'].applyFilterOnDevExGrid(ev);\r\n },\r\n pager: {\r\n allowedPageSizes: [10, 25, 50],\r\n displayMode: 'compact',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n pageSize: 10\r\n },\r\n rowAlternationEnabled: true,\r\n searchPanel: {\r\n visible: true\r\n },\r\n showBorders: true,\r\n summary: {\r\n calculateCustomSummary: (options) => {\r\n if (options.name === 'ConfirmedN') {\r\n if (options.summaryProcess === 'start') {\r\n options.totalValue = 0;\r\n }\r\n if (options.summaryProcess === 'calculate' && options.value == 'Confirmed') {\r\n options.totalValue++;\r\n }\r\n } else if (options.name === 'PendingN') {\r\n if (options.summaryProcess === 'start') {\r\n options.totalValue = 0;\r\n }\r\n if (options.summaryProcess === 'calculate' && options.value == 'Pending') {\r\n options.totalValue++;\r\n }\r\n }\r\n },\r\n totalItems: [\r\n {\r\n column: 'Status',\r\n displayFormat: 'Confirmed: {0}',\r\n name: 'ConfirmedN',\r\n summaryType: 'custom',\r\n },\r\n {\r\n column: 'Status',\r\n displayFormat: 'Pending: {0}',\r\n name: 'PendingN',\r\n summaryType: 'custom',\r\n },\r\n {\r\n column: 'ReferralBonus',\r\n summaryType: 'sum',\r\n }\r\n ],\r\n },\r\n });\r\n //$('#gvUserReferrals').dxDataGrid('instance').refresh();\r\n }\r\n // #endregion\r\n\r\n // #region ======================================= Usage Settings ==================================\r\n usageSettings() {\r\n const self = this;\r\n self.leadsMinutesPeriod = { type: 'Today' };\r\n\r\n self.usGetLeadsAndMinutesByPeriod();\r\n self.usGetExpiresAt();\r\n self.usUsersList();\r\n self.usActions();\r\n\r\n $('.root-preloader').hide();\r\n\r\n //$('.ps-usage-emails-col').off('click').on('click', () => {\r\n // let email: string;\r\n // try {\r\n // email = ($('.ps-usage-usersList') as any).dxDropDownBox('instance').option('value');\r\n // }\r\n // catch (ex) {\r\n // email = '';\r\n // }\r\n //})\r\n }\r\n\r\n /**\r\n * usActions(): Function\r\n * Other actions for Usage Settings\r\n */\r\n usActions() {\r\n const self = this;\r\n /**\r\n * Show tab \"Today\"\r\n */\r\n $('.ps-usage-today-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n $('.root-preloader').show();\r\n self.leadsMinutesPeriod = { type: 'Today' };\r\n self.usGetLeadsAndMinutesByPeriod();\r\n //if ($('.ps-usage-sentEmails').is(':visible')) $('.ps-usage-emails-col').click();\r\n //($('.ps-usage-range-tab') as any).tab('show');\r\n self.usShowActiveRangeTab('today');\r\n });\r\n\r\n $('.ps-usage-range-tab').off('show.bs.tab').on('show.bs.tab', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n\r\n $('.ps-usage-range-calendar').off('show.bs.dropdown').on('show.bs.dropdown', () => {\r\n self.usCalendarFrom();\r\n self.usCalendarTo();\r\n });\r\n\r\n $('.ps-usage-range-calendar').off('hide.bs.dropdown').on('hide.bs.dropdown', (e) => {\r\n self.usSetDisableStatusOnCalendarBtn(true)\r\n });\r\n\r\n /**\r\n * Set date range\r\n */\r\n $('.ps-usage-calendar-btn').off('click').on('click', e => {\r\n const start = ($('.ps-usage-calendar-from') as any).dxDateBox('instance').option('value');\r\n const end = ($('.ps-usage-calendar-to') as any).dxDateBox('instance').option('value');\r\n self.leadsMinutesPeriod = { type: 'Custom', start: start, end: end };\r\n self.usChangeLeadsMinutesPeriodByType();\r\n ($('.ps-usage-range-calendar') as any).dropdown('hide');\r\n //if ($('.ps-usage-sentEmails').is(':visible')) $('.ps-usage-emails-col').click();\r\n self.usShowActiveRangeTab('range');\r\n });\r\n }\r\n\r\n /**\r\n * usCalendarFrom(): Function\r\n * Show devExtreme dateBox with start date\r\n */\r\n usCalendarFrom() {\r\n const self = this;\r\n try { ($('.ps-usage-calendar-from') as any).dxDateBox('instance').dispose() } catch (ex) { };\r\n\r\n let date;\r\n if (self.leadsMinutesPeriod.type == 'Custom') {\r\n date = self.leadsMinutesPeriod.start;\r\n }\r\n else {\r\n date = new Date();\r\n }\r\n ($('.ps-usage-calendar-from') as any).dxDateBox({\r\n onInput: () => {\r\n self.usSetDisableStatusOnCalendarBtn(false);\r\n },\r\n onValueChanged: () => {\r\n self.usSetDisableStatusOnCalendarBtn(false);\r\n },\r\n pickerType: 'date',\r\n value: date,\r\n width: '100%',\r\n });\r\n }\r\n\r\n /**\r\n * usCalendarTo(): Function\r\n * Show devExtreme dateBox with end date\r\n */\r\n usCalendarTo() {\r\n const self = this;\r\n try { ($('.ps-usage-calendar-to') as any).dxDateBox('instance').dispose() } catch (ex) { };\r\n\r\n let date = new Date();\r\n if (self.leadsMinutesPeriod.type == 'Custom') {\r\n date = self.leadsMinutesPeriod.end;\r\n }\r\n else {\r\n date = new Date();\r\n }\r\n const fromDate = Date.parse(($('.ps-usage-calendar-from') as any).dxDateBox('instance').option('value'));\r\n ($('.ps-usage-calendar-to') as any).dxDateBox({\r\n min: fromDate,\r\n max: new Date(),\r\n onInput: () => {\r\n self.usSetDisableStatusOnCalendarBtn(false);\r\n },\r\n onValueChanged: () => {\r\n self.usSetDisableStatusOnCalendarBtn(false);\r\n },\r\n pickerType: 'date',\r\n value: date,\r\n width: '100%',\r\n });\r\n }\r\n\r\n /**\r\n * usChangeLeadsMinutesPeriodByType(): Function\r\n */\r\n usChangeLeadsMinutesPeriodByType() {\r\n const self = this;\r\n $('.root-preloader').show();\r\n switch (self.leadsMinutesPeriod.type) {\r\n case 'Custom':\r\n self.usGetLeadsAndMinutesByPeriod(self.leadsMinutesPeriod.start, self.leadsMinutesPeriod.end);\r\n self.usShowActiveRangeTab('range');\r\n break;\r\n default:\r\n self.usGetLeadsAndMinutesByPeriod();\r\n self.usShowActiveRangeTab('today');\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * usShowActiveRangeTab(tabName): Function\r\n * Set active tab with this tabName\r\n * @param tabName\r\n */\r\n usShowActiveRangeTab(tabName) {\r\n const self = this;\r\n $('#ps-usage-nav .nav-link').removeClass('active');\r\n $(`.ps-usage-${tabName}-tab`).addClass('active');\r\n if (tabName == 'today') {\r\n $('.ps-usage-range-text').hide();\r\n self.usSetDisableStatusOnCalendarBtn(true);\r\n }\r\n else { $('.ps-usage-range-text').show(); }\r\n }\r\n\r\n /**\r\n * usGetExpiresAt(): Function\r\n * Get and show expired package date\r\n */\r\n usGetExpiresAt() {\r\n $.ajax({\r\n type: 'POST',\r\n url: '/ProfileAndSettings/GetExpiresAt',\r\n success: (e) => {\r\n let date = window['moment'](e.subscriptions.ExpiresAt).format('MM/DD/YYYY');\r\n $('.ps-usage-amount').text(date);\r\n date = window['moment'](e.subscriptions.ExpiresAt).format('MM/DD/YYYY HH:mm');\r\n let remain: any = Math.floor(((new Date(date)).getTime() - Date.now()) / (86400 * 1000));\r\n if (remain < 0)\r\n remain = 'Expired';\r\n\r\n $('.ps-usage-remainingDays').text(remain);\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * usGetLeadsAndMinutesByPeriod(): Function\r\n * @param startDate\r\n * @param endDate\r\n */\r\n usGetLeadsAndMinutesByPeriod(startDate?: Date, endDate?: Date) {\r\n const self = this;\r\n let email: string;\r\n try {\r\n email = ($('.ps-usage-usersList') as any).dxDropDownBox('instance').option('value');\r\n }\r\n catch (ex) {\r\n email = '';\r\n }\r\n $.post('/ProfileAndSettings/GetLeadsAndMinutesbyPeriod', { email: email, start: window['moment'](startDate).format('MM/DD/YYYY'), end: window['moment'](endDate).format('MM/DD/YYYY') },\r\n (data) => {\r\n $('.ps-usage-leads').text(data.leadCreaditsCount);\r\n $('.ps-usage-minutes').text(data.dialrMinutesCount);\r\n //$('.ps-usage-emails').text(data.emailCount);\r\n self.usSetDateRangeText(startDate, endDate);\r\n $('.root-preloader').hide();\r\n });\r\n }\r\n\r\n /**\r\n * usSetDateRangeText(): function\r\n * Show period between start date and end date\r\n * @param startDate\r\n * @param endDate\r\n */\r\n usSetDateRangeText(startDate?: Date, endDate?: Date) {\r\n if (startDate) {\r\n const start = `${startDate.getMonth() + 1}/${(startDate).getDate()}/${(startDate).getFullYear()}`;\r\n const end = `${endDate.getMonth() + 1}/${(endDate).getDate()}/${(endDate).getFullYear()}`;\r\n $('.ps-usage-range-text').html(`${start} - ${end}`)\r\n } else $('.ps-usage-range-text').empty();\r\n }\r\n\r\n /**\r\n * usSetDisableStatusOnCalendarBtn(setDisable)\r\n * @param setDisable : boolean\r\n */\r\n usSetDisableStatusOnCalendarBtn(setDisable) {\r\n $('.ps-usage-calendar-btn').prop('disabled', setDisable);\r\n }\r\n\r\n /**\r\n * usUsersList(): Function\r\n * Load List of users of Company\r\n * Show it in devExtreme dropDownBox\r\n */\r\n usUsersList() {\r\n const self = this;\r\n const src = window['DevExpress'].data.AspNet.createStore({\r\n key: 'Email',\r\n loadUrl: '/ProfileAndSettings/ListSubUsers',\r\n onLoaded: (result) => {\r\n console.log('result', result);\r\n },\r\n });\r\n\r\n ($('.ps-usage-usersList') as any).dxDropDownBox({\r\n dataSource: src,\r\n contentTemplate: (e) => {\r\n const value = e.component.option('value'),\r\n $dataGrid = $('
    ').dxDataGrid({\r\n dataSource: e.component.getDataSource(),\r\n columns: ['FirstName', 'LastName', 'Email', 'Status'],\r\n height: 265,\r\n hoverStateEnabled: true,\r\n keyExpr: 'Email',\r\n onEditorPreparing: (e) => {\r\n window['InstanceBase'].devExSearchFilterDelay(e);\r\n window['InstanceBase'].devExSearchFilterMin(e);\r\n },\r\n onSelectionChanged: (selectedItems) => {\r\n e.component.option('value', selectedItems.selectedRowKeys[0] || null);\r\n e.component.close();\r\n if (selectedItems.selectedRowsData[0]) {\r\n if (selectedItems.selectedRowsData[0].ExpiresAt) {\r\n let date = window['moment'](selectedItems.selectedRowsData[0].ExpiresAt).format('MM/DD/YYYY');\r\n $('.ps-usage-amount').text(date);\r\n date = window['moment'](selectedItems.selectedRowsData[0].ExpiresAt).format('MM/DD/YYYY HH:mm');\r\n let remain: any = Math.round(((new Date(date)).getTime() - Date.now()) / (86400 * 1000));\r\n if (remain < 0)\r\n remain = 'Expired';\r\n\r\n $('.ps-usage-remainingDays').text(remain);\r\n } else {\r\n $('.ps-usage-amount').text('No CRM Package');\r\n $('.ps-usage-remainingDays').text('0');\r\n }\r\n\r\n $('.ps-usage-selectUser').text(selectedItems.selectedRowsData[0].FullName);\r\n }\r\n\r\n self.usChangeLeadsMinutesPeriodByType();\r\n // if(selectedItems.selectedRowsData[0]) {\r\n // $('#globalSearchTextField').val(selectedItems.selectedRowsData[0].CompanyName);\r\n // $('#globalSearchRequest').trigger('click');\r\n // }\r\n\r\n $('.ps-usage-sentEmails').hide();\r\n },\r\n paging: { enabled: true, pageSize: 10 },\r\n remoteOperations: true,\r\n searchPanel: {\r\n visible: true\r\n },\r\n scrolling: { mode: 'infinite' },\r\n selection: { mode: 'single' },\r\n // selectedRowKeys: value ? [value] : [],\r\n showBorders: true,\r\n });\r\n\r\n // dataGrid = $dataGrid.dxDataGrid('instance');\r\n\r\n // e.component.on('valueChanged', function (args) {\r\n // clearTimeout(searchTimer);\r\n // // dataGrid.option('selectedRowKeys', args.value ? [args.value] : []);\r\n // e.component.close();\r\n // });\r\n\r\n return $dataGrid;\r\n },\r\n displayExpr: 'Email',\r\n dropDownOptions: {\r\n width: 500\r\n },\r\n onContentReady: () => {\r\n $.post('/ProfileAndSettings/AccountSettingsInfo', (data) => {\r\n $('.ps-usage-selectUser').text(data.CurrentUser.FullName);\r\n });\r\n },\r\n value: window['User']?.Email,\r\n })\r\n }\r\n // #endregion\r\n\r\n\r\n // =========== old\r\n\r\n //######################################################################################################################################\r\n\r\n ///* - */OnChange(target) { // => home.ts\r\n // const self = this;\r\n // const $target = $(target);\r\n // const data = { action: $target.data('change'), value: $target.val() };\r\n\r\n // let status = true;\r\n // if (data.action == 'Phone') {\r\n // status = self.PhoneValidation(data.value, $target.attr('id'));\r\n // } else if (data.action == 'Email') {\r\n // status = self.EmailValidation(data.value, $target.attr('id'), false);\r\n // if (status) {\r\n // status = false\r\n // const newEmail = $('#' + $target.attr('id')).val();\r\n // $.post('/ProfileAndSettings/IsTheSameEmailExistInDB', { newEmail: newEmail },\r\n // function (res) {\r\n // if (!res.successs) {\r\n // status = false;\r\n // $('#psvalid-email').text(res.message);\r\n // $('#' + $target.attr('id')).addClass('is-invalid');\r\n // } else {\r\n // $.post('/ProfileAndSettings/Change', data, () => { });\r\n // }\r\n // });\r\n // }\r\n // } else if (data.action == 'CompanyWebsite') {\r\n // status = self.UrlValidation($target.attr('id'));\r\n // } else if (data.action == 'Zip') {\r\n // status = self.ZipValidation(data.value, $target.attr('id'));\r\n // } else if (data.action == 'CompanySize') {\r\n // status = self.CompanySizeValidation(data.value, $target.attr('id'));\r\n // }\r\n // if (data.action == 'FirstName') {\r\n // if (!data.value) {\r\n // status = false;\r\n // $('#psvalid-firstName').show();\r\n // }\r\n // else\r\n // $('#psvalid-firstName').hide();\r\n // }\r\n // if (data.action == 'LastName') {\r\n // if (!data.value) {\r\n // status = false;\r\n // $('#psvalid-lastName').show();\r\n // }\r\n // else\r\n // $('#psvalid-lastName').hide();\r\n // }\r\n\r\n // if (status && data.action) {\r\n // $.post('/ProfileAndSettings/Change', data, (res) => {\r\n // if ($('#MainPane .firstName').is(':visible')) {\r\n // if (res.action == 'FirstName') {\r\n // $('#MainPane .firstName').text(($('input[data-change=\"FirstName\"]') as any).val());\r\n // }\r\n // if (res.action == 'Function') {\r\n // $('#MainPane .hd-header-function').text(($('#userFunction') as any).val());\r\n // }\r\n // if (res.action == 'Greeting') {\r\n // const greetingTextBox = $('#ps-ad-greeting').dxTextBox('instance');\r\n // if (greetingTextBox.option('value') == 0) {\r\n // greetingTextBox.option('value', 'Let\\'s rock it today!');\r\n // }\r\n // $('#MainPane .userGreeting').text(greetingTextBox.option('value'));\r\n // $('#MainPane .userGreeting').attr('title', greetingTextBox.option('value'));\r\n // }\r\n // }\r\n // });\r\n // }\r\n //}\r\n\r\n ///* - */PassValidation(t) { // => devExtreme\r\n // const self = this;\r\n // const pass = t.val();\r\n // $('#currentPassword').closest('.position-relative').find('.invalid-feedback').hide();\r\n // const field = t.closest('.notMutch').find('.invalid-feedback');\r\n // const fields = $('.notMutch .invalid-feedback');\r\n // field.hide();\r\n\r\n // if (self.asIsValidPassword(pass)) {\r\n // if ($('#currentPassword').val() == $('#newPassword').val()) {\r\n // fields.show();\r\n // fields.text('Current password should be different from New password');\r\n // }\r\n // if ($('#newPassword').val() != $('#confirmPassword').val()) {\r\n\r\n // if ($('#confirmPassword').val()) {\r\n // fields.show();\r\n // fields.text('Passwords do not match');\r\n // }\r\n // } else {\r\n // if ($('#currentPassword').val() == $('#newPassword').val()) {\r\n // fields.show();\r\n // fields.text('Current password should be different from New password');\r\n // }\r\n // else {\r\n // $('#newPassword').closest('.notMutch').find('.invalid-feedback').hide();\r\n // $('#confirmPassword').closest('.notMutch').find('.invalid-feedback').hide();\r\n // $('#ps-changePassword').prop('disabled', false);\r\n // return true;\r\n // }\r\n // }\r\n // } else {\r\n // if ($('#newPassword').val() == '' && $('#confirmPassword').val() == '') {\r\n // return false;\r\n // } else {\r\n // if (pass != '') {\r\n // field.show();\r\n // field.html('Password doesn\\'t meet complexity requirments');\r\n // }\r\n // }\r\n // }\r\n // $('#ps-changePassword').prop('disabled', true);\r\n // return false;\r\n //}\r\n\r\n ///* - */PhoneValidation(phone, fieldId) { // => devExtreme\r\n // phone = phone.charAt(0) == '1' ? phone.replace(/\\D/g, '').substring(1) : phone.replace(/\\D/g, '');\r\n // const res = phone.length == 10 || phone == '' ? true : false;\r\n\r\n // $('#' + fieldId).val(phone);\r\n\r\n // !res ? $('#' + fieldId).val(phone).addClass('is-invalid') : $('#' + fieldId).val(phone).removeClass('is-invalid');\r\n\r\n // return res;\r\n //}\r\n\r\n ///* - */EmailValidation(email, fieldId, notRequeider = true) { // => devExtreme\r\n // $('#psvalid-email').text('Please provide a valid Email.');\r\n // const self = this;\r\n // let res = self.IsValidEmail(email) ? true : false;\r\n\r\n // if (notRequeider && email == '')\r\n // res = true;\r\n\r\n // $('#' + fieldId).val(email);\r\n\r\n // !res ? $('#' + fieldId).val(email).addClass('is-invalid') : $('#' + fieldId).val(email).removeClass('is-invalid');\r\n\r\n // return res\r\n //}\r\n\r\n ///* - */IsValidEmail(email): boolean { //=> devExtreme\r\n // const pattern = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n // return pattern.test(email);\r\n //}\r\n\r\n ///* - */ZipValidation(zcode, fieldId) { //=> devExtreme\r\n // const zipcode = zcode.replace(/\\D/g, '');\r\n // const res = zipcode.length == 5 || zipcode == '' ? true : false;\r\n // $('#' + fieldId).val(zipcode);\r\n\r\n // !res ? $('#' + fieldId).val(zipcode).addClass('is-invalid') : $('#' + fieldId).val(zipcode).removeClass('is-invalid');\r\n\r\n // return res\r\n //}\r\n\r\n ///* - */CompanySizeValidation(size, fieldId) { //=> devExtreme\r\n // size = size.replace(/\\D/g, '');\r\n // const res = parseInt(size) > 0 || size == '' ? true : false;\r\n // $('#' + fieldId).val(size);\r\n\r\n // !res ? $('#' + fieldId).val(size).addClass('is-invalid') : $('#' + fieldId).val(size).removeClass('is-invalid');\r\n\r\n // return res\r\n //}\r\n\r\n ///* - */UrlValidation(fieldId) { //=> devExtreme\r\n // const url = $(`#${fieldId}`).val();\r\n // const pattern = /[-a-zA-Z0-9@:%_\\+.~#?&//=]{2,256}\\.[a-z]{2,4}\\b(\\/[-a-zA-Z0-9@:%_\\+.~#?&//=]*)?/gi;\r\n // const regex = new RegExp(pattern);\r\n // const res = (url as any).match(regex);\r\n // if (!res) {\r\n // $(`#${fieldId}`).addClass('is-invalid');\r\n // return false;\r\n // } else {\r\n // $(`#${fieldId}`).removeClass('is-invalid');\r\n // return true;\r\n // }\r\n //}\r\n\r\n\r\n //######################################################################################################################################\r\n\r\n //#region------------- PLAN & UPGRADE tab and functions -------------//\r\n\r\n //GetFormattedDate(date) {\r\n // const year = date.getFullYear();\r\n\r\n // let month = (1 + date.getMonth()).toString();\r\n // month = month.length > 1 ? month : '0' + month;\r\n\r\n // let day = date.getDate().toString();\r\n // day = day.length > 1 ? day : '0' + day;\r\n\r\n // return month + '/' + day + '/' + year;\r\n //}\r\n\r\n //ShowModalPS(packId: number, e) {\r\n // const option = new Option(e);\r\n // const self = this;\r\n // if ($(e.target).text().includes('Current'))\r\n // return false;\r\n\r\n // option.current.price = option.current.price ? option.current.price : 0;\r\n\r\n // $('#downgradeModal .action').html(option.action);\r\n // $('#downgradeModal .current').html(option.current.name);\r\n // $('#downgradeModal .next').html(option.next.name);\r\n // $('#downgradeModal .currentRec').html(option.current.records);\r\n // $('#downgradeModal .nextRec').html(option.next.records);\r\n // $('#downgradeModal .currentMin').html(option.current.minutes);\r\n // $('#downgradeModal .nextMin').html(option.next.minutes);\r\n // $('#downgradeModal .currentPrice').html(`$${option.current.price}/monthly`);\r\n // $('#downgradeModal .nextPrice').html(`$${option.next.price}/monthly`);\r\n // $('#downgradeModal .downgrade-remove').html('');\r\n // //let defers = [];\r\n // if (option.action == 'Downgrade') {\r\n // option.current.include = option.current.include.filter(function (item, pos) {\r\n // return option.current.include.indexOf(item) == pos;\r\n // })\r\n\r\n // for (let i = option.next.include.length; i < option.current.include.length; i++) {\r\n // $('#downgradeModal .downgrade-remove').append(`
  • ${option.current.include[i]}
  • `);\r\n // }\r\n // $('#downgradeModal .downgrade-remove').removeClass('upgrade').addClass('downgrade');\r\n // $('#downgradeModal .downgrade-limit').removeClass('upgrade').addClass('downgrade');\r\n // $('#downgradeModal .changeText1').html('remove');\r\n // $('#downgradeModal .changeText2').html('usage limits to some features');\r\n // $('#downgradeModal .upgradeRemoveText').show();\r\n // if (option.next.name == 'Basic' && option.current.name == 'Individual') $('.warning-top').hide();\r\n // } else {\r\n // $('.warning-top').show();\r\n // for (let i = option.current.include.length; i < option.next.include.length; i++) {\r\n // $('#downgradeModal .downgrade-remove').append(`
  • ${option.next.include[i]}
  • `);\r\n // }\r\n // $('#downgradeModal .downgrade-remove').removeClass('downgrade').addClass('upgrade');\r\n // $('#downgradeModal .downgrade-limit').removeClass('downgrade').addClass('upgrade');\r\n // $('#downgradeModal .changeText1').html('add');\r\n // $('#downgradeModal .changeText2').html('more Records and Minutes to your account');\r\n // $('#downgradeModal .upgradeRemoveText').hide();\r\n // }\r\n // $('#downgradeModal .nextDate').html(self.GetFormattedDate(window['nextDate']));\r\n // ($('#downgradeModal') as any).modal('show');\r\n // $('#downgradeModal .btn-savePlan').off('click').on('click', (e) => {\r\n // e.preventDefault();\r\n // $.post('/Price/CurrentPlan', (data) => {\r\n // if (option.action == 'Upgrade' && !data) {\r\n // const price = option.next.price - option.current.price;\r\n // window['InstanceBase'].showPurchaseModal($('.mh-welcome-email').text(), price, packId, true);\r\n // } else {\r\n // $.post('/Price/SetNextPackage', { packid: packId }, () => {\r\n // location.reload();\r\n // });\r\n // ($('#downgradeModal') as any).modal('hide');\r\n // }\r\n // });\r\n // });\r\n //}\r\n\r\n //AutoRecharge(target, pos) {\r\n // const tar = target.toLowerCase();\r\n // $(pos + ' .packages-' + tar + '-check').on('click', (e) => {\r\n // const limit = +$(pos + ` .packages-balance-input-${tar}-falls`).val();\r\n // const amount = +$(pos + ` .packages-balance-input-${tar}-buy`).val();\r\n // const enabled = $(pos + ' .packages-' + tar + '-switch-input').is(':checked');\r\n // if (enabled)\r\n // $.get('/SaveAutoRecharge', {\r\n // type: target,\r\n // amount: amount,\r\n // limit: limit,\r\n // }, () => {\r\n // $.post('/Account/Check', (data) => {\r\n // const objModal = {\r\n // size: 'sm',\r\n // textModal: 'Saved',\r\n // textYesBtn: 'Ok',\r\n // }\r\n // window['InstanceBase'].onePropositionModalLoad(objModal);\r\n // //window['InstanceBase'].onePropositionModalLoad('', 'Saved', true, 'Ok', false);\r\n // $('#price-leads-tab span').html(data.Leads);\r\n // $('#price-minutes-tab span').html(data.Minutes);\r\n // });\r\n // });\r\n // });\r\n\r\n // function onAction(rev = false) {\r\n // const limit = +$(pos + ` .packages-balance-input-${tar}-falls`).val();\r\n // let amount = +$(pos + ` .packages-balance-input-${tar}-buy`).val();\r\n // const enabled = $(pos + ' .packages-' + tar + '-switch-input').is(':checked');\r\n // const bt = $(pos + ' .packages-' + tar + '-check, ' + pos + ` .packages-balance-input-${tar}-falls, ` + pos + ` .packages-balance-input-${tar}-buy`);\r\n // const b = rev ? !enabled : enabled;\r\n // if (b) {\r\n // bt.removeAttr('disabled');\r\n // bt.removeClass('disabled');\r\n // }\r\n // else {\r\n // bt.attr('disabled', 'disabled');\r\n // bt.addClass('disabled');\r\n // }\r\n // amount = !enabled ? amount : -amount;\r\n // if (rev)\r\n // amount = -amount;\r\n\r\n // if (amount < 0)\r\n // $.get('/SaveAutoRecharge', {\r\n // type: target,\r\n // amount: amount,\r\n // limit: limit,\r\n // }, console.log);\r\n // }\r\n // $(pos + ' .packages-' + tar + '-switch-input, ' + pos + ` .packages-balance-input-${tar}-falls, ` + pos + ` .packages-balance-input-${tar}-buy`).on('change', function (e) {\r\n // onAction(true);\r\n // });\r\n // $(pos + ' .packages-' + tar + '-switch-label').on('click', () => {\r\n // onAction();\r\n // });\r\n //}\r\n}\r\n\r\n\r\n//class Option {\r\n// private _current;\r\n// private _next;\r\n// current;\r\n// next;\r\n// action;\r\n\r\n// constructor(e) {\r\n// this._current = $('.btn-inactive').parents('.plans-item');\r\n// this._next = $(e.target).parents('.plans-item');\r\n// this.current = this.GetObj(this._current);\r\n// this.next = this.GetObj(this._next);\r\n// this.action = this.current.price > this.next.price ? 'Downgrade' : 'Upgrade';\r\n// }\r\n\r\n// private GetObj(target: JQuery) {\r\n// const self = this;\r\n// const rm = target.find('.recMonthly');\r\n// const items = target.find('.packageIncludes li');\r\n// const include = [];\r\n// const optional = [];\r\n// items.each(function (_, el) {\r\n// const $el = $(el);\r\n// if ($el.hasClass('packageIncludeOption')) {\r\n// include.push($el.html());\r\n// }\r\n// if ($el.hasClass('packageIncludeOptionOptional')) {\r\n// optional.push($el.find('label').html());\r\n// }\r\n// });\r\n\r\n// try {\r\n// return {\r\n// name: target.find('.plans-name').html(),\r\n// price: +target.find('.plans-price span').html().substr(1),\r\n// records: self.ToNum($(rm[0]).html()), //Dom get html => $(rm[0]).html()\r\n// minutes: self.ToNum($(rm[1]).html()),\r\n// include: include,\r\n// optional: optional\r\n// }\r\n// } catch (e) {\r\n// return {\r\n// name: undefined,\r\n// price: undefined,\r\n// records: undefined, //Dom get html => $(rm[0]).html()\r\n// minutes: undefined,\r\n// include: include,\r\n// optional: optional\r\n// }\r\n// }\r\n// }\r\n\r\n// private ToNum(str) {\r\n// let dig = 0;\r\n// for (let i = 0; i < str.length; i++) {\r\n// if (str[i] >= '0' && str[i] <= '9') {\r\n// dig *= 10;\r\n// dig += str[i] - ('0' as any);\r\n// }\r\n// }\r\n// return dig;\r\n// }\r\n//}"],"names":[],"sourceRoot":""}