183 lines
5.1 KiB
JavaScript
183 lines
5.1 KiB
JavaScript
var KretaComboBoxHelper = (function () {
|
|
var kretaComboBoxHelper = function () {};
|
|
|
|
kretaComboBoxHelper.getKendoComboBoxData = function (comboBoxId) {
|
|
var comboBox = $('#' + comboBoxId);
|
|
var comboBoxData = comboBox.data('kendoComboBox');
|
|
return comboBoxData;
|
|
};
|
|
|
|
kretaComboBoxHelper.getKendoValue = function (comboBoxId) {
|
|
var comboBoxData = kretaComboBoxHelper.getKendoComboBoxData(comboBoxId);
|
|
var result = comboBoxData.value();
|
|
return result;
|
|
};
|
|
|
|
kretaComboBoxHelper.getCascadeData = function (inputName) {
|
|
if (inputName.indexOf(',') >= 0) {
|
|
var array = inputName.split(',');
|
|
var data = '';
|
|
$.each(array, function (key, value) {
|
|
if (data.length > 0 && $('#' + value).val() != '') {
|
|
data += ',';
|
|
}
|
|
|
|
if (value.indexOf('#') >= 0) {
|
|
data += $(value).val();
|
|
} else {
|
|
data += $('#' + value).val();
|
|
}
|
|
});
|
|
return { cascadeFilter: data };
|
|
} else {
|
|
return { cascadeFilter: $(inputName).val() };
|
|
}
|
|
};
|
|
|
|
kretaComboBoxHelper.getServerFilteringData = function (inputName) {
|
|
return { serverFilter: $(inputName).val() };
|
|
};
|
|
|
|
kretaComboBoxHelper.getServerFilteringComboBoxTextData = function (
|
|
inputName
|
|
) {
|
|
var textValue = $(inputName).data('kendoComboBox').text();
|
|
if (textValue.length > 0) {
|
|
return { serverFilter: textValue };
|
|
}
|
|
|
|
return null;
|
|
};
|
|
|
|
kretaComboBoxHelper.refreshComboBox = function (inputName) {
|
|
var widget = $('#' + inputName).data('kendoComboBox');
|
|
widget.dataSource.read();
|
|
};
|
|
|
|
kretaComboBoxHelper.setFirstItem = function (inputName, setIfHasOnlyOneItem) {
|
|
var widget = $('#' + inputName).data('kendoComboBox');
|
|
if (setIfHasOnlyOneItem) {
|
|
if (widget.dataSource.data().length === 1) {
|
|
widget.value(widget.dataSource.data()[0].Value);
|
|
}
|
|
} else {
|
|
//NOTE: Check if has item!
|
|
if (widget.dataSource.data().length > 0) {
|
|
widget.value(widget.dataSource.data()[0].Value);
|
|
}
|
|
}
|
|
};
|
|
|
|
kretaComboBoxHelper.onChange = function (e) {
|
|
elementId = e.sender.element[0].id.replace('.', '_');
|
|
$('input[name="' + elementId + '"]').attr(
|
|
'title',
|
|
$('input[name="' + elementId + '_input' + '"]').attr('title')
|
|
); /*validációs üzenet buborékolása*/
|
|
|
|
var comboBox = $('#' + elementId).data('kendoComboBox');
|
|
checkSelectedValue(comboBox);
|
|
};
|
|
|
|
kretaComboBoxHelper.checkSelectedValue = function (elementId) {
|
|
var comboBox = $('#' + elementId).data('kendoComboBox');
|
|
checkSelectedValue(comboBox);
|
|
};
|
|
|
|
kretaComboBoxHelper.onDataBound = function (e) {
|
|
var elementId = e.sender.element[0].id;
|
|
var comboBox = $('#' + elementId).data('kendoComboBox');
|
|
if (typeof comboBox !== 'undefined') {
|
|
if (!comboBox.element.attr('placeholder')) {
|
|
comboBox.element.attr(
|
|
'placeholder',
|
|
comboBox.input.attr('placeholder')
|
|
);
|
|
}
|
|
|
|
var dataSource = comboBox.dataSource;
|
|
if (dataSource != null) {
|
|
if (dataSource.data().length == 1) {
|
|
var data = dataSource.data()[0];
|
|
comboBox.value(data.Value);
|
|
comboBox.trigger('change');
|
|
} else {
|
|
checkSelectedValue(comboBox);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
kretaComboBoxHelper.onDataBoundWithoutSetSingleElement = function (e) {
|
|
var elementId = e.sender.element[0].id;
|
|
var comboBox = $('#' + elementId).data('kendoComboBox');
|
|
if (typeof comboBox !== 'undefined') {
|
|
if (!comboBox.element.attr('placeholder')) {
|
|
comboBox.element.attr(
|
|
'placeholder',
|
|
comboBox.input.attr('placeholder')
|
|
);
|
|
}
|
|
|
|
var dataSource = comboBox.dataSource;
|
|
if (dataSource != null) {
|
|
if (dataSource.data().length != 1) {
|
|
checkSelectedValue(comboBox);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
kretaComboBoxHelper.onOpenDropdown = function (e) {
|
|
var elementId = e.sender.element[0].id;
|
|
var comboBox = $('#' + elementId).data('kendoComboBox');
|
|
|
|
var maxWidth = 800;
|
|
var comboMinWidth = $('#' + elementId)
|
|
.parents('.k-combobox')
|
|
.width();
|
|
if (comboMinWidth > maxWidth) {
|
|
maxWidth = comboMinWidth;
|
|
}
|
|
|
|
comboBox.list.css('maxWidth', maxWidth);
|
|
comboBox.list.css('minWidth', comboMinWidth);
|
|
comboBox.list.width('auto');
|
|
};
|
|
|
|
kretaComboBoxHelper.setKendoValue = function (comboBoxData, value) {
|
|
comboBoxData.value(value);
|
|
comboBoxData.trigger('change');
|
|
};
|
|
|
|
function checkSelectedValue(comboBox) {
|
|
if (comboBox.selectedIndex === -1 && comboBox.value()) {
|
|
comboBox.value(null);
|
|
comboBox.input.attr(
|
|
'placeholder',
|
|
comboBox.element.attr('data-msg-unknownvalue')
|
|
);
|
|
} else {
|
|
comboBox.input.attr('placeholder', comboBox.element.attr('placeholder'));
|
|
}
|
|
}
|
|
|
|
kretaComboBoxHelper.getIndexForValue = function (comboBoxId, value) {
|
|
var data = kretaComboBoxHelper
|
|
.getKendoComboBoxData(comboBoxId)
|
|
.dataSource.data();
|
|
|
|
var index = -1;
|
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
if (data[i].Value === value) {
|
|
index = i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return index;
|
|
};
|
|
|
|
return kretaComboBoxHelper;
|
|
})();
|