138 lines
3.5 KiB
JavaScript
138 lines
3.5 KiB
JavaScript
var KretaMultiSelectHelper = (function () {
|
|
var kretaMultiSelectHelper = function () {};
|
|
|
|
kretaMultiSelectHelper.getKendoMultiSelectData = function (multiSelectId) {
|
|
var multiSelectBox = $('#' + multiSelectId);
|
|
var multiSelectData = multiSelectBox
|
|
.kendoMultiSelect()
|
|
.data('kendoMultiSelect');
|
|
|
|
return multiSelectData;
|
|
};
|
|
|
|
kretaMultiSelectHelper.getCascadeData = function (inputName) {
|
|
if (inputName.indexOf(',') >= 0) {
|
|
var array = inputName.split(',');
|
|
var data = '';
|
|
|
|
$.each(array, function (key, value) {
|
|
if (data.length) {
|
|
data += ',';
|
|
}
|
|
|
|
if (value.indexOf('#') >= 0) {
|
|
data += $(value).val();
|
|
} else {
|
|
data += $('#' + value).val();
|
|
}
|
|
});
|
|
|
|
return { cascadeFilter: data };
|
|
}
|
|
|
|
return { cascadeFilter: $(inputName).val() };
|
|
};
|
|
|
|
kretaMultiSelectHelper.getServerFilteringData = function (inputName) {
|
|
return { serverFilter: $(inputName).val() };
|
|
};
|
|
|
|
kretaMultiSelectHelper.getServerFilteringMultiSelectTextData = function (
|
|
inputName
|
|
) {
|
|
var textValue = $(inputName).data('kendoMultiSelect').text();
|
|
|
|
if (textValue.length) {
|
|
return { serverFilter: textValue };
|
|
}
|
|
|
|
return null;
|
|
};
|
|
|
|
kretaMultiSelectHelper.refreshMultiSelectBox = function (inputName) {
|
|
var widget = $('#' + inputName)
|
|
.kendoMultiSelect()
|
|
.data('kendoMultiSelect');
|
|
|
|
widget.dataSource.read();
|
|
};
|
|
|
|
kretaMultiSelectHelper.setFirstItem = function (
|
|
inputName,
|
|
setIfHasOnlyOneItem
|
|
) {
|
|
var widget = $('#' + inputName)
|
|
.kendoMultiSelect()
|
|
.data('kendoMultiSelect');
|
|
|
|
if (setIfHasOnlyOneItem) {
|
|
if (widget.dataSource.data().length === 1) {
|
|
widget.value(widget.dataSource.data()[0].Value);
|
|
}
|
|
} else {
|
|
if (widget.dataSource.data().length > 0) {
|
|
widget.value(widget.dataSource.data()[0].Value);
|
|
}
|
|
}
|
|
};
|
|
|
|
function validateDataInChange(elementId) {
|
|
elementId = elementId.replace('.', '_');
|
|
$('input[name="' + elementId + '"]').attr(
|
|
'title',
|
|
$('input[name="' + elementId + '_input"]').attr('title')
|
|
);
|
|
|
|
var widget = $('#' + elementId)
|
|
.kendoMultiSelect()
|
|
.data('kendoMultiSelect');
|
|
|
|
if (widget.selectedIndex === -1 && widget.value()) {
|
|
if (widget.dataSource.view().length) {
|
|
widget.select(0);
|
|
} else {
|
|
widget.value(null);
|
|
}
|
|
}
|
|
}
|
|
|
|
kretaMultiSelectHelper.validateCascadeDataInChange = function (e) {
|
|
validateDataInChange(e.id);
|
|
};
|
|
|
|
kretaMultiSelectHelper.validateDataInChange = function (e) {
|
|
validateDataInChange(e.sender.element[0].id);
|
|
};
|
|
|
|
kretaMultiSelectHelper.dataBoundMultiSelect = function (e) {
|
|
var elementId = e.sender.element[0].id;
|
|
var multiSelect = $('#' + elementId).data('kendoMultiSelect');
|
|
|
|
if (typeof multiSelect !== 'undefined') {
|
|
var dataSource = multiSelect.dataSource;
|
|
|
|
if (dataSource != null) {
|
|
if (dataSource.data().length == 1) {
|
|
var data = dataSource.data()[0];
|
|
|
|
multiSelect.value(data.Value);
|
|
multiSelect.trigger('change');
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
kretaMultiSelectHelper.onOpenDropdownMultiSelect = function (e) {
|
|
var elementId = e.sender.element[0].id;
|
|
var MultiBox = $('#' + elementId).data('kendoMultiSelect');
|
|
|
|
return MultiBox;
|
|
};
|
|
|
|
kretaMultiSelectHelper.setKendoValue = function (comboBoxData, value) {
|
|
comboBoxData.value(value);
|
|
comboBoxData.trigger('change');
|
|
};
|
|
|
|
return kretaMultiSelectHelper;
|
|
})();
|