var KretaOsztalybaSorolasHelper = (function () { var kretaOsztalybaSorolasHelper = function () {}; //Selectedre állítja egy select összes option-jét kretaOsztalybaSorolasHelper.selectAllOptions = function (selStr) { var selObj = document.getElementById(selStr); for (var i = 0; i < selObj.options.length; i++) { selObj.options[i].selected = true; } }; //Leszedi a selectedet egy select összes option-jéről kretaOsztalybaSorolasHelper.deSelectAllOptions = function (selStr) { var selObj = document.getElementById(selStr); for (var i = 0; i < selObj.options.length; i++) { selObj.options[i].selected = false; } $('#sortNameFromElement').click(); $('#sortNameToElement').click(); }; //A jobb oldali tanuló listát frissíti kretaOsztalybaSorolasHelper.replaceToTanuloList = function (data) { $('#multiselect_to').find('option').remove().end(); $('#ToElementsCount').text('0'); if (data.length) { $.each(data, function (key, value) { var $option = $('') .attr('value', data[key].Value) .attr('fromId', $('#FromDDL').val()) .attr('szulDatum', data[key].SzulDatum) .attr('neme', data[key].Neme) .attr('nevElotagNelkul', data[key].NevElotagNelkul) .attr('jogviszonyCount', data[key].JogviszonyCount) .attr('jogviszonyId', '0') .text(data[key].Text); var oldText; var date; if (!data[key].Aktiv) { $option.css({ background: '#C5D3E2', color: '#828EB2' }); if (data[key].KisorolasDatum != null) { oldText = $option.text(); date = new Date(data[key].KisorolasDatum); $option.text( oldText + ' Kisorolva: ' + date.toLocaleDateString('hu-HU') ); } } else { if (data[key].BesorolasDatum != null) { oldText = $option.text(); date = new Date(data[key].BesorolasDatum); $option.text( oldText + ' Besorolva: ' + date.toLocaleDateString('hu-HU') ); } } $('#multiselect_to').append($option); }); $('#multiselect_to').unbind(); $('#multiselect_to option').unbind(); //KretaOsztalybaSorolasHelper.setMultiClickOption("SorolasForm"); $('#ToElementsCountIn').text($('#multiselect_to option').length); setTimeout(function () { $('#multiselect_to').click(function () { $('#ToElementsCount').text($('#multiselect_to :selected').length); }); }, 1); if (KretaOsztalybaSorolasHelper.msieversion()) { $('#multiselect_to option') .mousedown(function (e) { e.preventDefault(); var select = this; var scroll = select.scrollTop; e.target.selected = !e.target.selected; setTimeout(function () { select.scrollTop = scroll; }, 0); $('#multiselect_to').focus(); }) .mousemove(function (e) { e.preventDefault(); }); } else { $('#multiselect_to') .mousedown(function (e) { e.preventDefault(); var select = this; var scroll = select.scrollTop; e.target.selected = !e.target.selected; setTimeout(function () { select.scrollTop = scroll; }, 0); $('#multiselect_to').focus(); }) .mousemove(function (e) { e.preventDefault(); }); } } kretaOsztalybaSorolasHelper.multiselectWithShiftFrom(); kretaOsztalybaSorolasHelper.multiselectWithShiftTo(); }; //A bal oldali tanuló listát frissíti kretaOsztalybaSorolasHelper.replaceFromTanuloList = function (data) { let selectedOptions = $('#multiselect') .find('option:selected') .toArray() .map((i) => i.value); $('#multiselect').find('option').remove().end(); $('#FromElementsCount').text('0'); if (data.length) { $.each(data, function (key, value) { var $option = $('') .attr('value', data[key].Value) .attr('fromId', $('#FromDDL').val()) .attr('szulDatum', data[key].SzulDatum) .attr('neme', data[key].Neme) .attr('nevElotagNelkul', data[key].NevElotagNelkul) .attr('jogviszonyCount', data[key].JogviszonyCount) .attr('jogviszonyId', '0') .text(data[key].Text); var oldText; var date; if (!data[key].Aktiv) { $option.attr('disabled', 'disabled'); $option.css({ background: '#C5D3E2', color: '#828EB2' }); if (data[key].KisorolasDatum != null) { oldText = $option.text(); date = new Date(data[key].KisorolasDatum); $option.text( oldText + ' Kisorolva: ' + date.toLocaleDateString('hu-HU') ); } } else { if (data[key].KisorolasDatum != null) { oldText = $option.text(); date = new Date(data[key].KisorolasDatum); $option.text( oldText + ' Kisorolva: ' + date.toLocaleDateString('hu-HU') ); } if (data[key].BesorolasDatum != null) { oldText = $option.text(); date = new Date(data[key].BesorolasDatum); $option.text( oldText + ' Besorolva: ' + date.toLocaleDateString('hu-HU') ); } if (typeof getNincsRogzitettAtiratkozasiZaradek === 'function') { $option.attr( 'class', data[key].Vegzaradek != null ? 'green' : 'red' ); $option.attr( 'data-fa-icon', data[key].Vegzaradek != null ? '\uf00c' : '\uf00d' ); $option.attr( 'title', data[key].Vegzaradek != null ? data[key].Vegzaradek : KretaOsztalybaSorolasHelper.NincsRogzitettAtiratkozasiZaradek() ); } } $('#multiselect').append($option); }); $('#multiselect').unbind(); $('#multiselect option').unbind(); KretaOsztalybaSorolasHelper.setMultiClickOption('SorolasForm'); $('#FromElementsCountIn').text($('#multiselect option').length); setTimeout(function () { $('#multiselect').click(function () { $('#FromElementsCount').text($('#multiselect :selected').length); }); }, 1); if (KretaOsztalybaSorolasHelper.msieversion()) { $('#multiselect option') .mousedown(function (e) { e.preventDefault(); var select = this; var scroll = select.scrollTop; e.target.selected = !e.target.selected; setTimeout(function () { select.scrollTop = scroll; }, 0); $('#multiselect').focus(); }) .mousemove(function (e) { e.preventDefault(); }); } else { $('#multiselect') .mousedown(function (e) { e.preventDefault(); var select = this; var scroll = select.scrollTop; e.target.selected = !e.target.selected; setTimeout(function () { select.scrollTop = scroll; }, 0); $('#multiselect').focus(); }) .mousemove(function (e) { e.preventDefault(); }); } } kretaOsztalybaSorolasHelper.multiselectWithShiftFrom(); kretaOsztalybaSorolasHelper.multiselectWithShiftTo(); $('#multiselect') .find('option') .toArray() .filter((i) => selectedOptions.includes(i.value)) .forEach((i) => (i.selected = true)); }; kretaOsztalybaSorolasHelper.multiselectWithShiftFrom = function () { var fromOptionSelector = '#multiselect option'; var lastOptionFrom = null; // Többes kiválasztás $(fromOptionSelector).on('click', function (e) { if (!lastOptionFrom) { lastOptionFrom = this; return; } if (e.shiftKey) { var from = $(fromOptionSelector).index(this); var to = $(fromOptionSelector).index(lastOptionFrom); var start = Math.min(from, to); var end = Math.max(from, to) + 1; $(fromOptionSelector) .slice(start, end) .filter(':not(:disabled)') .prop('selected', lastOptionFrom.selected); } lastOptionFrom = this; }); }; kretaOsztalybaSorolasHelper.multiselectWithShiftTo = function () { var toOptionSelector = '#multiselect_to option'; var lastOptionTo = null; // Többes kiválasztás $(toOptionSelector).on('click', function (e) { if (!lastOptionTo) { lastOptionTo = this; return; } if (e.shiftKey) { var from = $(toOptionSelector).index(this); var to = $(toOptionSelector).index(lastOptionTo); var start = Math.min(from, to); var end = Math.max(from, to) + 1; $(toOptionSelector) .slice(start, end) .filter(':not(:disabled)') .prop('selected', lastOptionTo.selected); } lastOptionTo = this; }); }; kretaOsztalybaSorolasHelper.setMultiClickOption = function (formName) { if (KretaOsztalybaSorolasHelper.msieversion()) { window.selectedIEOptions = {}; $('#multiselect').click(function (e) { var $this = $(this), options = this.options, option, value, n; value = $this.val(); for (n = 0; n < options.length; ++n) { option = options[n]; if (option.value == value) { window.selectedIEOptions[value] = !window.selectedIEOptions[value]; } option.selected = !!window.selectedIEOptions[option.value]; } return false; }); window.selectedToIEOptions = {}; $('#multiselect_to').click(function (e) { var $this = $(this), options = this.options, option, value, n; value = $this.val(); for (n = 0; n < options.length; ++n) { option = options[n]; if (option.value == value) { window.selectedToIEOptions[value] = !window.selectedToIEOptions[value]; } option.selected = !!window.selectedToIEOptions[option.value]; } return false; }); } }; kretaOsztalybaSorolasHelper.msieversion = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf('MSIE '); if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) { return true; } return false; }; kretaOsztalybaSorolasHelper.sizeListSelect = function ($selectObject) { if (!(typeof $selectObject[0].options === 'undefined')) { var opts = $selectObject[0].options.length; opts = opts > 18 ? opts : 18; $selectObject[0].size = opts; $selectObject.parent('.selectBoxDiv').height($selectObject.height()); $selectObject.parent('.selectBoxDiv').height(400); } }; //Engedélyezi vagy letiltja a multiselect button-öket kretaOsztalybaSorolasHelper.setMultiselectButton = function (dropdownName) { $('#' + dropdownName).change(function () { if ( $('#' + dropdownName) .data('kendoComboBox') .value() != '' ) { $('#multiselect_rightAll').prop('disabled', false); $('#multiselect_rightSelected').prop('disabled', false); $('#multiselect_leftAll').prop('disabled', false); $('#multiselect_leftSelected').prop('disabled', false); } else { $('#multiselect_rightAll').prop('disabled', true); $('#multiselect_rightSelected').prop('disabled', true); $('#multiselect_leftAll').prop('disabled', true); $('#multiselect_leftSelected').prop('disabled', true); } }); }; //Beállítja az aktuális napot kretaOsztalybaSorolasHelper.today = function () { var todayDate = kendo.toString(kendo.parseDate(new Date())); var minDate = $('#Datum').data('kendoDatePicker').min(); var maxDate = $('#Datum').data('kendoDatePicker').max(); if ( !KretaOsztalybaSorolasHelper.dateCheck( new Date(minDate), new Date(maxDate), new Date() ) ) { KretaWindowHelper.warningWindow( Globalization.Figyelem, 'A mai dátum nem esik bele az aktuális tanév kezdő és záró dátuma közé!', undefined, 'todayWarrning' ); } $('#Datum').data('kendoDatePicker').value(todayDate); $('#Datum').focus().focusout(); $('#Datum').data('kendoDatePicker').trigger('change'); }; kretaOsztalybaSorolasHelper.dateCheck = function (from, to, check) { var fDate, lDate, cDate; fDate = Date.parse(from); lDate = Date.parse(to); cDate = Date.parse(check); if (cDate <= lDate && cDate >= fDate) { return true; } return false; }; //Törli egy select összes option-jét kretaOsztalybaSorolasHelper.removeOptions = function (selectName) { $('#' + selectName) .find('option') .remove() .end(); }; //Ellenőrzés, hogy lehet -e engedélyezni a multiselect button-öket kretaOsztalybaSorolasHelper.checkData = function ( fromDDL, toDDL, isKovTanev ) { var fromValue = $('#' + fromDDL) .data('kendoComboBox') .value(); var toValue = $('#' + toDDL) .data('kendoComboBox') .value(); var toDatasource = $('#' + toDDL).data('kendoComboBox').dataSource; var FilterId = 0; //Összes osztályra vonatkozó feltétel if (fromValue == -1) { $.each(toDatasource.data(), function (i, v) { if (v.Value == toValue) { FilterId = v.FilterId; } }); if (FilterId != null) { $('#multiSelectErrorMsg').text( 'Az összes osztály listából osztálybontott csoportba nem lehet sorolni!' ); $('#multiselect_rightAll').prop('disabled', true); $('#multiselect_rightSelected').prop('disabled', true); $('#multiselect_leftAll').prop('disabled', true); $('#multiselect_leftSelected').prop('disabled', true); } else { $('#multiSelectErrorMsg').text(''); $('#multiselect_rightAll').prop('disabled', false); $('#multiselect_rightSelected').prop('disabled', false); $('#multiselect_leftAll').prop('disabled', false); $('#multiselect_leftSelected').prop('disabled', false); } } else { $.each(toDatasource.data(), function (i, v) { if (v.Value == toValue) { FilterId = v.FilterId; } }); if ( fromValue != FilterId && FilterId != null && (CommonUtils.isNullOrUndefined(isKovTanev) || isKovTanev == false) ) { $('#multiSelectErrorMsg').text( Globalization.OsztalybontottCsoportOsztalyNemEgyezik ); $('#multiselect_rightAll').prop('disabled', true); $('#multiselect_rightSelected').prop('disabled', true); $('#multiselect_leftAll').prop('disabled', true); $('#multiselect_leftSelected').prop('disabled', true); } else { $('#multiSelectErrorMsg').text(''); $('#multiselect_rightAll').prop('disabled', false); $('#multiselect_rightSelected').prop('disabled', false); $('#multiselect_leftAll').prop('disabled', false); $('#multiselect_leftSelected').prop('disabled', false); } } if (fromValue == '' || toValue == '') { $('#multiSelectErrorMsg').text(''); } }; //Ellenőrzés, hogy lehet -e engedélyezni a multiselect button-öket csoportok esetében kretaOsztalybaSorolasHelper.checkCsoportData = function (fromDDL, toDDL) { var fromValue = $('#' + fromDDL) .data('kendoComboBox') .value(); var toValue = $('#' + toDDL) .data('kendoComboBox') .value(); var fromDatasource = $('#' + fromDDL).data('kendoComboBox').dataSource; var toDatasource = $('#' + toDDL).data('kendoComboBox').dataSource; var FromFilterId = 0; var ToFilterId = 0; $.each(fromDatasource.data(), function (i, v) { if (v.Value == fromValue) { FromFilterId = v.FilterId; } }); $.each(toDatasource.data(), function (i, v) { if (v.Value == toValue) { ToFilterId = v.FilterId; } }); if (ToFilterId != null && FromFilterId != ToFilterId) { $('#multiSelectErrorMsg').text( Globalization.OsztalybontottCsoportOsztalyNemEgyezik ); $('#multiselect_rightAll').prop('disabled', true); $('#multiselect_rightSelected').prop('disabled', true); $('#multiselect_leftAll').prop('disabled', true); $('#multiselect_leftSelected').prop('disabled', true); } else { $('#multiSelectErrorMsg').text(''); $('#multiselect_rightAll').prop('disabled', false); $('#multiselect_rightSelected').prop('disabled', false); $('#multiselect_leftAll').prop('disabled', false); $('#multiselect_leftSelected').prop('disabled', false); } if (fromValue == '' || toValue == '') { $('#multiSelectErrorMsg').text(''); } }; //Összeállítja az elküldendő json object-et kretaOsztalybaSorolasHelper.createJson = function (formName) { var array = new Array(); $.each($('#multiselect_to option'), function (key, value) { if (!$(this).attr('disabled')) { array.push({ Id: value.value, fromid: $(value).attr('fromid'), jogviszonycount: $(value).attr('jogviszonycount'), jogviszonyids: $(value).attr('jogviszonyid'), isVanMentettVegzaradek: !CommonUtils.isNullOrUndefined( $(value).attr('class') ) ? $(value).attr('class').indexOf('green') !== -1 : 'false' }); } }); var json = $('#' + formName).toObject(); json.ToElements = array; if (!CommonUtils.isNullOrUndefined($('#SorolasZaradek').html())) { var zaradekData = $('#SorolasZaradek').toObject(); if (!CommonUtils.isNullOrUndefined($('#TanuloCsoportId').val())) { zaradekData.TanuloCsoportId = $('#TanuloCsoportId').val(); } zaradekData.ZaradekSzovegList = getZaradekSzovegList(); json.Zaradek = zaradekData; } else { json.Zaradek = null; } return json; }; //Újratölti egy combobox értékkészletét kretaOsztalybaSorolasHelper.reloadDDL = function (DDL_Name) { $('#' + DDL_Name) .data('kendoComboBox') .trigger('change'); }; kretaOsztalybaSorolasHelper.checkPrePost = function (inputName) { var val = $('#' + inputName) .data('kendoComboBox') .value(); var txt = $('#' + inputName) .data('kendoComboBox') .text(); if ($.isNumeric(val) && val != txt) { $('#FromDDL, #ToDDL').change(); return true; } else { $('#' + inputName) .data('kendoComboBox') .value(''); $('#' + inputName) .data('kendoComboBox') .trigger('change'); return false; } }; kretaOsztalybaSorolasHelper.afterSaveReloadDDL = function () { $('#multiselect > option').remove().end(); $('#multiselect_to > option').remove().end(); var toDDL = $('#ToDDL').data('kendoComboBox'); toDDL.value(''); var fromDDl = $('#FromDDL').data('kendoComboBox'); fromDDl.value(''); $('#ToElementsCount').text(0); $('#ToElementsCountIn').text(0); $('#FromElementsCount').text(0); $('#FromElementsCountIn').text($('#multiselect > option').length); window.oldComboBoxValue = ''; if ( !CommonUtils.isNullOrUndefined($('#JogvMegszuneseJogcimTipusId')) && !CommonUtils.isNullOrUndefined( $('#JogvMegszuneseJogcimTipusId').data('kendoComboBox') ) ) { var JogvMegszuneseJogcimTipusIdDDl = $( '#JogvMegszuneseJogcimTipusId' ).data('kendoComboBox'); JogvMegszuneseJogcimTipusIdDDl.value(''); } if ( !CommonUtils.isNullOrUndefined($('#JogviszonyVege')) && !CommonUtils.isNullOrUndefined( $('#JogviszonyVege').data('kendoDatePicker') ) ) { $('#JogviszonyVege').data('kendoDatePicker').value(''); } if (!CommonUtils.isNullOrUndefined($('.SorolasTbJogviszonyPartial'))) { $('.SorolasTbJogviszonyPartial').empty(); } }; kretaOsztalybaSorolasHelper.afterErrorReloadDDL = function () { var fromDDl = $('#FromDDL').data('kendoComboBox'); fromDDl.trigger('change'); var toDDL = $('#ToDDL').data('kendoComboBox'); toDDL.trigger('change'); $('#FromElementsCountIn').text($('#multiselect > option').length); window.oldComboBoxValue = ''; }; kretaOsztalybaSorolasHelper.resetForm = function (fromDDL, toDDL) { // bal oldal $('#' + fromDDL) .data('kendoComboBox') .value(''); $('#multiselect > option').remove().end(); $('#FromElementsCount').text('0'); //jobb oldal $('#' + toDDL) .data('kendoComboBox') .value(''); $('#multiselect_to > option').remove().end(); $('#ToElementsCount').text('0'); //záradék if ( !CommonUtils.isNullOrUndefined( $('#ZaradekAdatszotar').data('kendoComboBox') ) ) { $('#ZaradekAdatszotar').data('kendoComboBox').value(''); } $('[id^=ZaradekSzovegTextArea_]').val(''); $('#IsBizonyitvanybanMegjelenik').prop('checked', false); $('#IsTorzslaponMegjelenik').prop('checked', false); $('#IsOsztalynaplobanMegjelenik').prop('checked', false); }; kretaOsztalybaSorolasHelper.NincsRogzitettAtiratkozasiZaradek = function () { return getNincsRogzitettAtiratkozasiZaradek(); }; kretaOsztalybaSorolasHelper.LoadJogviszonyGrid = function () { $.each($('#multiselect_to option'), function (key, value) { if (!$(this).attr('disabled')) { $(value).attr('jogviszonyid', '0'); } }); if (typeof loadJogviszonyPartialGrid === 'function') { loadJogviszonyPartialGrid(); } }; kretaOsztalybaSorolasHelper.disableMultiselectButtons = function () { $('#multiselect_rightAll').prop('disabled', true); $('#multiselect_rightSelected').prop('disabled', true); $('#multiselect_leftAll').prop('disabled', true); $('#multiselect_leftSelected').prop('disabled', true); }; function getZaradekSzovegList() { var zaradekSzovegList = []; var zaradekSzovegQuery = $("textarea[name^='ZaradekSzovegTextArea_']"); zaradekSzovegQuery.each(function (index, value) { var zaradekSzovegTextArea = $(value); var szoveg = zaradekSzovegTextArea.val(); var nyelvId = zaradekSzovegTextArea.data('nyelv-id'); zaradekSzovegList[index] = { NyelvId: nyelvId, Szoveg: szoveg }; }); return zaradekSzovegList; } return kretaOsztalybaSorolasHelper; })();