{"version":3,"file":"../../widgets/mssgCardWidget.js","sources":["widgets/mssgCardWidget.js"],"sourcesContent":["\"use strict\";\n\nvar mssgCardWidget = function () {\n var mssgCardWidgetParams = {\n model: {\n selectedMssgAnswer: '',\n initialAnswer: '',\n serviceGrade: null\n },\n url: {},\n spasiboOffer: {},\n template: {}\n };\n\n function renderEvaluationGrade() {\n var $mssgGradeSection = $('.mssgs-grade-section');\n var gradeTemplate = \"
\";\n $mssgGradeSection.append(gradeTemplate);\n $(\"#serviceRating-\".concat(mssgCardWidgetParams.model.serviceGrade)).attr('checked', true);\n }\n\n function evaluateService(grade, comment, callback) {\n $.ajax({\n url: mssgCardWidgetParams.url.evaluateService,\n data: {\n siId: mssgCardWidgetParams.model.id,\n grade: grade,\n comment: comment\n },\n method: 'POST',\n success: function success(data) {\n callback(data);\n }\n });\n }\n\n function createAnswer(serviceID, callback) {\n $.ajax({\n url: \"\".concat(mssgCardWidgetParams.url.createAnswer).concat(serviceID, \"/\").concat(mssgCardWidgetParams.model.id),\n method: 'GET',\n success: function success(data) {\n callback(data);\n }\n });\n }\n\n function submitMssgAnswer(answerID, callback) {\n $.ajax({\n url: mssgCardWidgetParams.url.selectAnswer,\n data: {\n siId: mssgCardWidgetParams.model.id,\n acId: answerID\n },\n method: 'POST',\n success: function success(data) {\n callback(data);\n }\n });\n }\n\n function spasiboConfirmOffer() {\n $.ajax({\n url: mssgCardWidgetParams.url.confirmSpasiboOffer,\n data: {\n spasiboOfferId: mssgCardWidgetParams.spasiboOffer.id,\n serviceInstanseId: mssgCardWidgetParams.model.id\n },\n method: 'POST',\n success: function success(data) {\n if (data.Success) {\n modalDialog.busyIndicator(true);\n location.reload();\n } else modalDialog.showError(data.Result);\n }\n });\n }\n\n function unbindHandlers() {\n $(document).off('click', '#evaluateServiceBtn');\n $(document).off('change', '[name=\"newServiceRating\"]');\n $(document).off('click', '.mssg-services-list .service-item');\n $(document).off('change', '.mssg-answer-options');\n $(document).off('click', '#submitMssgAnswerBtn');\n $(document).off('click', '#spasibo-offer');\n $(document).off('click', '#spasibo-redirect');\n }\n\n function bindHandlers() {\n $(document).on('click', '#evaluateServiceBtn', function () {\n $('[name=\"newServiceRating\"]').attr('checked', false);\n $('#mssgEvaluationModal').showAsModal({\n title: 'Оценка качества сервиса',\n buttons: [{\n title: 'Отмена',\n big: true\n }, {\n title: 'Оценить',\n big: true,\n primary: true,\n onClick: function onClick() {\n var res = false;\n var grade = $('[name=\"newServiceRating\"]:checked').val();\n var gradeVal = grade == undefined ? 0 : +grade;\n var comment = $('[name=\"GradeComment\"]').val().trim();\n\n if (gradeVal === 0) {\n validation.setFieldInvalid($('[data-prop-name=\"ratingVal\"]'), 'Пожалуйста, поставьте оценку');\n } else if (gradeVal <= 3 && !comment.length) {\n validation.setFieldInvalid($('[data-prop-name=\"ratingComment\"]'), 'Пожалуйста, укажите комментарий к оценке');\n } else {\n evaluateService(gradeVal, comment, function (data) {\n if (data.Success) {\n renderEvaluationGrade();\n $('#evaluateServiceBtn').hide();\n $('#mssgEvaluationModal').modalDlgClose();\n } else {\n modalDialog.showBaseWnd({\n title: 'Ошибка',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return data.Result;\n }\n });\n }\n });\n }\n\n return res;\n }\n }],\n onClose: function onClose() {\n $('[name=\"newServiceRating\"]:checked').prop('checked', false);\n validation.setAllValid('#mssgEvaluationModal');\n }\n });\n });\n $(document).on('change', '[name=\"newServiceRating\"]', function () {\n var $ratingField = $('[data-prop-name=\"ratingVal\"]');\n var $commentField = $('[data-prop-name=\"ratingComment\"]');\n mssgCardWidgetParams.model.serviceGrade = $(this).val();\n\n if (mssgCardWidgetParams.model.serviceGrade > 3) {\n validation.setFieldValid($commentField);\n }\n\n validation.setFieldValid($ratingField);\n });\n $(document).on('click', '.mssg-services-list .service-item', function () {\n var serviceID = $(this).attr('data-answer-service-id');\n modalDialog.busyIndicator(true);\n createAnswer(serviceID, function (template) {\n var $answerModal = $('#mssgAnswerModal').html(template);\n modalDialog.busyIndicator(false);\n $answerModal.showAsModal({\n isVertical: true,\n buttons: [{\n title: 'Отправить',\n big: true,\n primary: true,\n wide: true,\n onClick: function onClick() {\n var isValid = modalService.validateModalForm();\n\n if (isValid) {\n // improve submitRequest API\n modalService.submitRequest(function (res) {\n modalDialog.showBaseWnd({\n title: 'Запрос принят',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return res.Result;\n }\n });\n });\n }\n\n return isValid;\n }\n }],\n afterOpen: function afterOpen() {\n modalService.setTitle(); //LKCommon.initSelectric($('.ServiceInstanceCreateDialog .select'));\n }\n });\n });\n });\n $(document).on('change', '.mssg-answer-options', function () {\n var mssgAnswer = $(this).val();\n var $submitMssgAnswerBtn = $('#submitMssgAnswerBtn');\n var $valueArea = $('[data-prop-name=\"answer\"]');\n\n if (mssgAnswer !== mssgCardWidgetParams.model.initialAnswer && mssgAnswer !== '') {\n $submitMssgAnswerBtn.attr('disabled', false);\n } else {\n $submitMssgAnswerBtn.attr('disabled', true);\n }\n\n mssgCardWidgetParams.model.selectedMssgAnswer = mssgAnswer;\n validation.setFieldValid($valueArea);\n });\n $(document).on('click', '#submitMssgAnswerBtn', function () {\n var answerID = mssgCardWidgetParams.model.selectedMssgAnswer;\n var $this = $(this);\n var $mssgAction = $('.mssg-answer-action');\n var $answerField = $mssgAction.closest('.field');\n var responseTxt = '(вы уже отвечали ранее)';\n var isValid = true;\n var dataSet = {\n answer: answerID\n };\n isValid = validation.validateRequiredValues(dataSet);\n\n if (isValid) {\n submitMssgAnswer(answerID, function () {\n $this.attr('disabled', true);\n $answerField.attr('data-label-desc', responseTxt);\n $answerField.find('.field-label-description').text(responseTxt);\n mssgCardWidgetParams.model.initialAnswer = answerID;\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 });\n $(document).on('focus', '#GradeComment', function () {\n var $commentField = $('[data-prop-name=\"ratingComment\"]');\n validation.setFieldValid($commentField);\n });\n $(document).on('click', '#spasibo-offer', function () {\n var hasConfirmedOffer = false;\n modalDialog.showBaseWnd({\n title: mssgCardWidgetParams.spasiboOffer.title,\n size: 'large',\n inputs: [{\n id: 'offerConfirm',\n title: 'Я согласен с офертой',\n type: 'checkbox'\n }],\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true,\n disabled: true,\n onClick: function onClick() {\n if ($('#offerConfirm').is(':checked')) {\n hasConfirmedOffer = true;\n }\n }\n }],\n footer: {\n classNames: '-accented'\n },\n onDrawContent: function onDrawContent() {\n return mssgCardWidgetParams.spasiboOffer.text;\n },\n onClose: function onClose() {\n if (hasConfirmedOffer) {\n spasiboConfirmOffer();\n }\n }\n });\n });\n $(document).on('click', '#spasibo-redirect', function () {\n modalDialog.busyIndicator(true);\n location.href = mssgCardWidgetParams.url.spasiboRedirect;\n });\n }\n\n function setParams(mssgParams) {\n mssgCardWidgetParams = $.extend({}, mssgCardWidgetParams, mssgParams);\n }\n\n function cacheNodes() {}\n\n function init(mssgParams) {\n unbindHandlers();\n LKCommon.initSelectric($('.mssg-answer-options'));\n setParams(mssgParams);\n cacheNodes();\n bindHandlers();\n }\n\n return {\n init: init\n };\n}();"],"names":["mssgCardWidget","mssgCardWidgetParams","model","selectedMssgAnswer","initialAnswer","serviceGrade","url","spasiboOffer","template","bindHandlers","$","document","on","attr","showAsModal","title","buttons","big","primary","onClick","callback","grade","val","gradeVal","undefined","comment","trim","validation","setFieldInvalid","length","data","Success","append","concat","hide","modalDlgClose","modalDialog","showBaseWnd","onDrawContent","Result","ajax","evaluateService","siId","id","method","success","onClose","prop","setAllValid","$ratingField","$commentField","this","setFieldValid","serviceID","busyIndicator","$answerModal","html","isVertical","wide","isValid","modalService","validateModalForm","submitRequest","res","afterOpen","setTitle","createAnswer","mssgAnswer","$submitMssgAnswerBtn","$valueArea","answerID","$this","$answerField","closest","responseTxt","dataSet","answer","validateRequiredValues","find","text","selectAnswer","acId","hasConfirmedOffer","size","inputs","type","disabled","is","footer","classNames","confirmSpasiboOffer","spasiboOfferId","serviceInstanseId","location","reload","showError","href","spasiboRedirect","init","mssgParams","off","LKCommon","initSelectric","extend"],"mappings":"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"}