446 lines
15 KiB
JavaScript
446 lines
15 KiB
JavaScript
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;
|
|
};
|