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; })();