var SorolasLogic = function () { var helper = function () {}; var formName = 'SorolasForm'; var fromSelectName = 'multiselect'; var toSelectName = 'multiselect_to'; var toDdl = 'ToDDL'; var fromDdl = 'FromDDL'; var keltezesHelyeName = 'KeltezesHelye'; var keltezesDatumaName = 'KeltezesDatuma'; helper.FromUrl = ''; helper.FromAdditionalFunction = null; helper.ToUrl = ''; helper.ToAdditionalFunction = null; helper.SaveUrl = ''; helper.SaveAdditionalFunction = null; helper.SaveOnErrorFunction = null; helper.IsDefaultFeedbackWindow = true; helper.SelectedOsztalyId = null; helper.JogviszonyVegeValidationMessage = ''; helper.JogvMegszuneseJogcimTipusIdValidationMessage = ''; helper.Save = function (zaradekTextName) { if (!CommonUtils.isNullOrEmpty(zaradekTextName)) { var zaradekText = $('#' + zaradekTextName); var keltezesHelyeText = $('#' + keltezesHelyeName); var keltezesDatumaDP = $('#' + keltezesDatumaName); zaradekText.removeClass('error'); keltezesHelyeText.removeClass('error'); keltezesDatumaDP.removeClass('error'); $('#' + zaradekTextName + '-error') .parent() .remove(); if ($('#' + toSelectName + ' option.red').length == 0) { zaradekText.attr('data-rule-required', 'false'); zaradekText.attr('aria-required', 'false'); zaradekText.rules('remove', 'required'); zaradekText.rules('add', { required: false }); keltezesHelyeText.attr('data-rule-required', 'false'); keltezesHelyeText.attr('aria-required', 'false'); keltezesHelyeText.rules('remove', 'required'); keltezesDatumaDP.attr('data-rule-required', 'false'); keltezesDatumaDP.attr('aria-required', 'false'); keltezesDatumaDP.rules('remove', 'required'); } else { zaradekText.attr('data-rule-required', 'true'); zaradekText.attr('aria-required', 'true'); zaradekText.rules('add', 'required'); keltezesHelyeText.attr('data-rule-required', 'true'); keltezesHelyeText.attr('aria-required', 'true'); keltezesHelyeText.rules('add', 'required'); keltezesDatumaDP.attr('data-rule-required', 'true'); keltezesDatumaDP.attr('aria-required', 'true'); keltezesDatumaDP.rules('add', 'required'); } CheckJogviszonyValidation(); var validator = $('#' + formName).validate(); $('#' + zaradekTextName, '#' + formName).each(function () { validator.successList.push(this); //mark as error free validator.showErrors(); //remove error messages if present }); //validator.resetForm();//remove error class on name elements and clear history validator.reset(); //remove all error and success data } var fromValue = $('#' + fromSelectName).val(); KretaOsztalybaSorolasHelper.selectAllOptions(fromSelectName); var toValue = $('#' + toSelectName).val(); KretaOsztalybaSorolasHelper.selectAllOptions(toSelectName); var json = KretaOsztalybaSorolasHelper.createJson(formName); if ($('#' + formName).valid()) { if (json.ToElements.length > 0) { if (!CommonUtils.isNullOrEmpty(zaradekTextName)) { if (CommonUtils.isNullOrEmpty(zaradekText.val())) { //Minden elemnel van mentett ki/atsorolasi zaradek de a szoveg nincs kitoltve if ($('#' + toSelectName + ' option.red').length === 0) { SaveAtsorolas(json); } } else { //Van akinél van rögzített és van akinél még nincs. Felületen ki van töltve if ( $('#' + toSelectName + ' option.green').length > 0 && $('#' + toSelectName + ' option.red').length > 0 ) { KretaWindowHelper.feedbackWindowWithThreeButton( Globalization.Kerdes, Globalization.EgyesTanulokMarRendelkeznekKiAtsorolasiZaradekkalKerdes, false, Globalization.RogzitesMindenkinek, Globalization.RogzitesAkinekMegNincsen, Globalization.Vissza, RogzitesMindenkinek, RogzitesAkinekMegNincsen, null ); } //Felületen meg van adva és vagy csak záradékkal rendelkező elemek vannak, vagy csak záradékkal nem rendelkezőek if ( $('#' + toSelectName + ' option.green').length === 0 || $('#' + toSelectName + ' option.red').length === 0 ) { RogzitesMindenkinek(); } } } else { RogzitesMindenkinek(json); } } else { KretaWindowHelper.feedbackWindow( Globalization.Hiba, Globalization.MenteshezLegalabbEgyTanulo, true ); } } KretaOsztalybaSorolasHelper.deSelectAllOptions(fromSelectName); $('#' + fromSelectName).val(fromValue); KretaOsztalybaSorolasHelper.deSelectAllOptions(toSelectName); $('#' + toSelectName).val(toValue); }; helper.changeFromDdl = function (dynamicPropertiesObject) { var senderValue = $('#' + fromDdl) .data('kendoComboBox') .value(); if (senderValue != '') { if (KretaOsztalybaSorolasHelper.checkPrePost(fromDdl)) { var data = createChangeDdlData( { Id: senderValue }, dynamicPropertiesObject ); AjaxHelper.DoGet( helper.FromUrl, data, KretaOsztalybaSorolasHelper.replaceFromTanuloList ); if (typeof helper.FromAdditionalFunction === 'function') { helper.FromAdditionalFunction(); } } } else { KretaOsztalybaSorolasHelper.removeOptions(fromSelectName); } }; helper.changeToDdl = function (dynamicPropertiesObject) { var sender = $('#' + toDdl).data('kendoComboBox'); var senderValue = sender.value(); if (senderValue != '') { helper.SelectedOsztalyId = senderValue; if (window.oldComboBoxValue != '') { KretaWindowHelper.confirmWindow( Globalization.Kerdes, Globalization.OsztalyCsoportbaSorolasModositasFigyelmeztetes, function () { changeToAjax(senderValue, dynamicPropertiesObject); window.oldComboBoxValue = ''; helper.setDateRequiredDivVisibility(); }, senderValue, function () { sender.value(window.oldComboBoxValue); window.oldComboBoxValue = ''; }, Globalization.Rendben, Globalization.Vissza ); } else { changeToAjax(senderValue, dynamicPropertiesObject); } } else { KretaOsztalybaSorolasHelper.removeOptions(toSelectName); helper.SelectedOsztalyId = null; } }; helper.init = function (dropKovTanevAlert) { window.oldComboBoxValue = ''; KretaOsztalybaSorolasHelper.setMultiselectButton(toDdl); setTimeout(function () { function combobox_open(e) { window.oldComboBoxValue = $('#' + toDdl) .data('kendoComboBox') .value(); } $('#' + toDdl) .data('kendoComboBox') .bind('open', combobox_open); }, 1); if (typeof dropKovTanevAlert !== 'undefined' && dropKovTanevAlert) { KretaWindowHelper.feedbackWindow( Globalization.Hiba, Globalization.HianyzoKovTanev /*A rendszerben nem található meg jelenleg következő tanév, így a besorolás nem lehetséges!*/, true ); } }; helper.initDate = function (id) { $('#' + id).focusout(function () { kendoControl = $(this).data('kendoDatePicker'); var value = $(this).val().replace(' ', '').replace(' ', ''); var dateValue = new Date(value); var minDate = kendoControl.min(); var maxDate = kendoControl.max(); var deleteDatePickerValue = false; if (minDate != null) { if (dateValue < minDate) { deleteDatePickerValue = true; } } if (maxDate != null) { if (dateValue > maxDate) { deleteDatePickerValue = true; } } if (deleteDatePickerValue) { kendoControl.value(''); } }); $('#Datum').on('focusout', function () { $('#Datum').data('kendoDatePicker').trigger('change'); }); }; helper.setDate = function (id, datum) { $('#' + id) .data('kendoDatePicker') .value(datum); $('#' + id) .focus() .focusout(); $('#' + id) .data('kendoDatePicker') .trigger('change'); }; helper.setFromAndToDdl = function (dynamicPropertiesObject) { helper.changeFromDdl(dynamicPropertiesObject); helper.changeToDdl(dynamicPropertiesObject); }; helper.setDateRequiredDivVisibility = function () { if ($('#Datum').length) { if ( !CommonUtils.isNullOrUndefined($('#Datum')) && !CommonUtils.isNullOrUndefined($('#Datum').data('kendoDatePicker')) && !CommonUtils.isNullOrUndefined( $('#Datum').data('kendoDatePicker').value() ) ) { $('#dateRequiredDiv').hide(); $('#multiselect_rightAll').prop('disabled', false); $('#multiselect_rightSelected').prop('disabled', false); $('#multiselect_leftAll').prop('disabled', false); $('#multiselect_leftSelected').prop('disabled', false); } else { $('#dateRequiredDiv').show(); $('#multiselect_rightAll').prop('disabled', true); $('#multiselect_rightSelected').prop('disabled', true); $('#multiselect_leftAll').prop('disabled', true); $('#multiselect_leftSelected').prop('disabled', true); } } }; function changeToAjax(senderValue, dynamicPropertiesObject) { if (KretaOsztalybaSorolasHelper.checkPrePost(toDdl)) { var data = createChangeDdlData( { Id: senderValue }, dynamicPropertiesObject ); AjaxHelper.DoGet( helper.ToUrl, data, KretaOsztalybaSorolasHelper.replaceToTanuloList ); if (typeof helper.ToAdditionalFunction === 'function') { helper.ToAdditionalFunction(); } } } function createChangeDdlData(originalData, dynamicPropertiesObject) { if (!CommonUtils.isNullOrUndefined(dynamicPropertiesObject)) { originalData = Object.assign(originalData, dynamicPropertiesObject); } var data = null; if ( !CommonUtils.isNullOrUndefined($('#Datum')) && !CommonUtils.isNullOrUndefined($('#Datum').data('kendoDatePicker')) && !CommonUtils.isNullOrUndefined( $('#Datum').data('kendoDatePicker').value() ) ) { var datum = moment .utc(kendo.parseDate($('#Datum').data('kendoDatePicker').value(), 'u')) .local() .format(); if (!CommonUtils.isNullOrEmpty(datum)) { data = { datum: datum }; originalData = Object.assign(originalData, data); } } if ( !CommonUtils.isNullOrUndefined($('#KilepesDatum')) && !CommonUtils.isNullOrUndefined( $('#KilepesDatum').data('kendoDatePicker') ) && !CommonUtils.isNullOrUndefined( $('#KilepesDatum').data('kendoDatePicker').value() ) ) { var datum = moment .utc( kendo.parseDate( $('#KilepesDatum').data('kendoDatePicker').value(), 'u' ) ) .local() .format(); if (!CommonUtils.isNullOrEmpty(datum)) { data = { kilepesDatum: datum }; originalData = Object.assign(originalData, data); } } return originalData; } function saveFeedBackOk(afterSaveFunction) { if (typeof afterSaveFunction === 'function') { afterSaveFunction(); } if (helper.IsDefaultFeedbackWindow) { KretaWindowHelper.feedbackWindow( Globalization.Siker, Globalization.SikeresMentes, false ); } KretaOsztalybaSorolasHelper.resetForm(fromDdl, toDdl); } function RogzitesAkinekMegNincsen() { var json = KretaOsztalybaSorolasHelper.createJson(formName); var zaradekRogzitesArray = new Array(); $.each(json.ToElements, function (key, value) { if (value.isVanMentettVegzaradek) { zaradekRogzitesArray.push({ Id: value.Id, fromid: value.fromid, jogviszonycount: value.jogviszonycount, jogviszonyids: value.jogviszonyids, isVanMentettVegzaradek: value.isVanMentettVegzaradek, isKellFeluletenMegadottZaradekRogzitese: false }); } else { zaradekRogzitesArray.push({ Id: value.Id, fromid: value.fromid, jogviszonycount: value.jogviszonycount, jogviszonyids: value.jogviszonyids, isVanMentettVegzaradek: value.isVanMentettVegzaradek, isKellFeluletenMegadottZaradekRogzitese: true }); } }); json.ToElements = zaradekRogzitesArray; SaveAtsorolas(json); } function RogzitesMindenkinek() { var json = KretaOsztalybaSorolasHelper.createJson(formName); var zaradekRogzitesArray = new Array(); $.each(json.ToElements, function (key, value) { zaradekRogzitesArray.push({ Id: value.Id, fromid: value.fromid, jogviszonycount: value.jogviszonycount, jogviszonyids: value.jogviszonyids, isVanMentettVegzaradek: value.isVanMentettVegzaradek, isKellFeluletenMegadottZaradekRogzitese: true }); }); json.ToElements = zaradekRogzitesArray; SaveAtsorolas(json); } function SaveAtsorolas(json) { AjaxHelper.DoValidationPost( helper.SaveUrl, formName, json, function () { saveFeedBackOk(helper.SaveAdditionalFunction); }, helper.SaveOnErrorFunction ); } function CheckJogviszonyValidation() { var jogviszonyVizsgalat = $("#IsJogviszonyVizsgalat").val(); if (jogviszonyVizsgalat !== undefined) { var jogviszonyVege = $('#JogviszonyVege'); var jogvMegszuneseJogcimTipusId = $('#JogvMegszuneseJogcimTipusId'); if (jogviszonyVizsgalat === 'true') { CommonUtils.UpdateRequiredProperies((jogviszonyVege !== undefined && jogviszonyVege !== null && jogviszonyVege.length > 0), '#JogviszonyVege', helper.JogviszonyVegeValidationMessage) CommonUtils.UpdateRequiredProperies((jogvMegszuneseJogcimTipusId !== undefined && jogvMegszuneseJogcimTipusId !== null && jogvMegszuneseJogcimTipusId.length > 0), '#JogvMegszuneseJogcimTipusId', helper.JogvMegszuneseJogcimTipusIdValidationMessage) } else { CommonUtils.UpdateRequiredProperies(false, '#JogviszonyVege', helper.JogviszonyVegeValidationMessage) CommonUtils.UpdateRequiredProperies(false, '#JogvMegszuneseJogcimTipusId', helper.JogvMegszuneseJogcimTipusIdValidationMessage) } } } return helper; };