{"version":3,"file":"../../widgets/contractsTabWidget.js","sources":["widgets/contractsTabWidget.js"],"sourcesContent":["\"use strict\";\n\nvar contractsWidget = function () {\n var contractsWidgetParams = {\n added: 0,\n // amount of newly added contracts\n modalTitle: 'Подтверждение принадлежности договора'\n };\n var timerOn = false;\n var _int = null;\n var $saveBtn = null;\n var $loader = null;\n\n function collectContractsData() {\n var contracts = [];\n var $contractsList = $('.person-contract-list').find('.user-list-row.-edited');\n $contractsList.each(function () {\n var $contractRow = $(this);\n var contract = {\n EntityType: $contractRow.find('.person-contract-entity').val(),\n BuldingObject: $contractRow.find('.person-contract-obj :selected').text(),\n BuldingObjectId: $contractRow.find('.person-contract-obj').val(),\n ObjectNumber: $contractRow.find('.person-contract-number').val().trim()\n };\n contracts.push(contract);\n });\n return contracts;\n }\n\n function updateContractsTbl() {\n var $personContracts = $('.person-contract-list');\n var $newContracts = $personContracts.find('.user-list-row.-edited');\n $personContracts.removeClass('-edit-mode');\n $newContracts.find('.user-list-cell').removeClass('-left-border -padded');\n $newContracts.find('.user-list-cell:not(.-extra)').addClass('-disabled');\n $newContracts.find('.person-contract-number').attr('disabled', 'disabled');\n $newContracts.find('.select').attr('disabled', 'disabled').selectric('refresh');\n $newContracts.find('.person-contract-action').remove();\n $newContracts.removeClass('-edited');\n }\n\n function showSuccessModal() {\n modalDialog.showBaseWnd({\n title: 'Информация',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return 'Данные успешно сохранены';\n }\n });\n }\n\n function checkBindings(dataSet) {\n $loader.show();\n $.ajax({\n type: 'POST',\n url: contractsWidgetParams.url.checkBindingsUrl,\n data: {\n model: dataSet\n },\n success: function success(xhr) {\n if (xhr.Success) {\n if (xhr.Result === 'CustomerAccountOnly') {\n timerOn = false;\n showSuccessModal();\n }\n\n if (Array.isArray(xhr.Result) && xhr.Result.length === 1) {\n // показываем модалку с одним носером телефона\n $('text[name=phone-number]').text(xhr.Result[0]);\n $('#one-phone-number-modal').showAsModal({\n title: contractsWidgetParams.modalTitle\n });\n }\n\n if (Array.isArray(xhr.Result) && xhr.Result.length > 1) {\n // показываем модалку с несколькими номерами\n var modal = renderHtml('multiple-phone-number-modal', {\n phoneNumbers: xhr.Result\n });\n $(modal).showAsModal({\n title: contractsWidgetParams.modalTitle\n });\n }\n\n updateContractsTbl();\n } else {\n modalDialog.showBaseWnd({\n title: 'Ошибка',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n }\n\n $loader.hide();\n }\n });\n }\n\n function saveBindings(confirmCode) {\n $.ajax({\n type: 'POST',\n url: contractsWidgetParams.url.saveBindings,\n data: {\n confirmationCode: confirmCode\n },\n success: function success(xhr) {\n if (xhr.Success) {\n $('#approve-code-modal').closest('.modal').modalDlgClose();\n timerOn = false;\n showSuccessModal();\n } else {\n switch (xhr.Result.ErrorType) {\n case 'validationEx':\n $('#validate-error').text(xhr.Result.ErrorMessage);\n break;\n\n case 'serverEx':\n $('#approve-code-modal').closest('.modal').modalDlgClose();\n timerOn = false;\n modalDialog.showBaseWnd({\n title: 'Ошибка',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result.ErrorMessage;\n }\n });\n break;\n\n default:\n console.error('Unhandled savebindings error');\n break;\n }\n }\n }\n });\n }\n\n function modalMinuteCountdown() {\n timerOn = true;\n var seconds = 60;\n $(\".modal-footer.-space-between\").show();\n $('#confirm-time').html(seconds);\n\n var setParam = function setParam() {\n $('#confirm-param').hide();\n $(\".modal-footer.-space-between\").hide();\n $('#resend-confirm-param').show();\n $('#validate-error').text('');\n $('#confirmation-code').val('');\n $('#confirm-time').html('');\n };\n\n _int = setInterval(function () {\n $('#confirm-time').html(seconds - 1);\n seconds -= 1;\n\n if (!timerOn || seconds <= 0) {\n setParam();\n clearInterval(_int);\n }\n }, 1000);\n }\n\n function getConfirmationCode(modalSelector) {\n $.ajax({\n type: 'POST',\n url: contractsWidgetParams.url.sendCodeOnPhone,\n data: {\n phoneNumber: contractsWidgetParams.phoneNumber\n },\n success: function success(xhr) {\n if (xhr.Success) {\n $('#confirm-param').show();\n $('#resend-confirm-param').hide();\n timerOn = false;\n\n if (modalSelector) {\n $(modalSelector).closest('.modal').modalDlgClose();\n $('#approve-code-modal').showAsModal({\n title: contractsWidgetParams.modalTitle,\n inputs: [{\n id: 'confirmation-code',\n placeholder: 'Полученный код'\n }],\n buttons: [{\n title: 'Подтвердить',\n big: true,\n primary: true,\n onClick: function onClick() {\n var confirmCode = $('#confirmation-code').val();\n\n if (!confirmCode) {\n $('#validate-error').text('Введите код подтверждения');\n } else {\n saveBindings(confirmCode);\n }\n\n return false;\n }\n }]\n });\n }\n\n modalMinuteCountdown();\n } else {\n modalDialog.showBaseWnd({\n title: 'Ошибка',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n }\n }\n });\n }\n\n function bindHandlers() {\n $saveBtn.attr('disabled', true);\n $(document).on('click', '#saveBindingBtn', function () {\n var isValid = true;\n var dataSet = {\n ExistingContractsList: contractsWidgetParams.model.bindingList,\n ContractBindingList: collectContractsData()\n };\n var passedValidation = validation.validateContracts(dataSet);\n isValid = isValid && passedValidation;\n\n if (isValid) {\n $('#saveBindingsModal').showAsModal({\n title: 'Внимание',\n buttons: [{\n title: 'Да',\n big: true,\n primary: true,\n onClick: function onClick() {\n checkBindings({\n SelectedContracts: dataSet.ContractBindingList.filter(function (item) {\n return item.EntityType === 'clientContract';\n }),\n SelectedCustomerAccounts: dataSet.ContractBindingList.filter(function (item) {\n return item.EntityType === 'customerAccount';\n })\n });\n }\n }, {\n title: 'Нет',\n big: true\n }]\n });\n }\n });\n $(document).on('click', '#addBindingBtn', function () {\n var $contractsList = $('.person-contract-list');\n var contractItem = $('#building-object-row').html();\n contractsWidgetParams.added += 1;\n $saveBtn.attr('disabled', false);\n $contractsList.addClass('-edit-mode');\n $contractsList.find('.user-list-body').append(contractItem);\n\n if (window.innerWidth < 680) {\n LKCommon.initSelectric($contractsList.last('.user-list-row').find('.select'));\n $('.person-contract-list .selectric-items').addClass('selectrickWidthForMobileWidth');\n } else {\n $('.person-contract-list .selectric-items').removeClass('selectrickWidthForMobileWidth');\n LKCommon.initExpandedSelectric($contractsList.last('.user-list-row').find('.select'));\n }\n });\n $(document).on('click', '.person-contract-remove', function () {\n var $this = $(this);\n var $contractsList = $('.person-contract-list');\n contractsWidgetParams.added -= 1;\n $this.closest('.user-list-row').remove();\n\n if (contractsWidgetParams.added === 0) {\n $saveBtn.attr('disabled', true);\n $contractsList.removeClass('-edit-mode');\n }\n\n if ($('.user-list-row').length <= 3) {\n $(\"#addBindingBtn\").show();\n }\n });\n $(document).on('click', '#one-phone-send, #multiple-phone-send, #resend-link', function () {\n switch ($(this).attr('id')) {\n case 'one-phone-send':\n contractsWidgetParams.phoneNumber = $('[name=phone-number]').text();\n getConfirmationCode('#one-phone-modal-content');\n break;\n\n case 'multiple-phone-send':\n contractsWidgetParams.phoneNumber = $('.modal-dialog #select-phone-number option:selected').text();\n getConfirmationCode('#multiple-phone-modal-content');\n break;\n\n case 'resend-link':\n getConfirmationCode(null);\n break;\n\n default:\n console.error('Such button is not defined');\n break;\n }\n });\n $(document).on('change focus', '.inp, .radio, .checkbox, .selectric-select', function () {\n var $this = $(this);\n var $field = $this.closest('.field');\n validation.setFieldValid($field);\n });\n }\n\n function cacheNodes() {\n $saveBtn = $('#saveBindingBtn');\n $loader = $('.loader.-local');\n }\n\n function unbindHandlers() {\n $(document).off('click', '#saveBindingBtn');\n $(document).off('click', '#addBindingBtn');\n $(document).off('click', '.person-contract-remove');\n $(document).off('click', '#one-phone-send, #multiple-phone-send, #resend-link');\n $(document).off('change focus', '.inp, .radio, .checkbox, .selectric-select');\n }\n\n function setParams(contractsParams) {\n contractsWidgetParams = $.extend({}, contractsWidgetParams, contractsParams);\n }\n\n function InitGrid() {\n if ($(\".user-list-body\").children().length == 0) {\n $(\"#addBindingBtn\").click();\n }\n }\n\n function RemoveAddBindingBtn() {}\n\n function init(contractsParams) {\n unbindHandlers();\n cacheNodes();\n setParams(contractsParams);\n bindHandlers();\n InitGrid();\n }\n\n return {\n init: init\n };\n}();"],"names":["contractsWidget","contractsWidgetParams","added","modalTitle","timerOn","_int","$saveBtn","$loader","showSuccessModal","modalDialog","showBaseWnd","title","buttons","big","primary","onDrawContent","checkBindings","dataSet","show","$","ajax","type","url","checkBindingsUrl","data","model","success","xhr","$personContracts","$newContracts","Success","Result","Array","isArray","length","text","showAsModal","modal","renderHtml","phoneNumbers","find","removeClass","addClass","attr","selectric","remove","hide","modalMinuteCountdown","seconds","html","setInterval","val","clearInterval","getConfirmationCode","modalSelector","sendCodeOnPhone","phoneNumber","closest","modalDlgClose","inputs","id","placeholder","onClick","confirmCode","saveBindings","confirmationCode","ErrorType","ErrorMessage","console","error","bindHandlers","document","on","contracts","ExistingContractsList","bindingList","ContractBindingList","each","$contractRow","this","contract","EntityType","BuldingObject","BuldingObjectId","ObjectNumber","trim","push","validation","validateContracts","SelectedContracts","filter","item","SelectedCustomerAccounts","$contractsList","contractItem","append","window","innerWidth","LKCommon","initSelectric","last","initExpandedSelectric","$this","$field","setFieldValid","init","contractsParams","off","extend","children","click"],"mappings":"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"}