Browse Source

Filter error fixed

pull/13804/head^2
Salih 4 years ago
parent
commit
73086ba248
  1. 171
      modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js

171
modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js

@ -5,122 +5,107 @@ $(function () {
var getFormattedDate = function ($datePicker) { var getFormattedDate = function ($datePicker) {
return $datePicker.data().datepicker.getFormattedDate('yyyy-mm-dd'); return $datePicker.data().datepicker.getFormattedDate('yyyy-mm-dd');
}; };
var comboboxItems = []; var comboboxItems = [];
service.getFilterItems() service.getFilterItems()
.then(function (result) { .then(function (result) {
comboboxItems = result; comboboxItems = result;
fillOptions(); fillOptions();
}).catch(function (error) { }).catch(function (error) {
abp.message.error(error); abp.message.error(error);
}); });
var $projectId = $('#ProjectId');
$projectId.on('change', function () {
fillOptions();
});
var comboboxs = {
version: $('#Version'),
languageCode: $('#LanguageCode'),
format: $('#Format')
};
for (var key in comboboxs) {
comboboxs[key].on('change', function () {
fillOptions();
});
}
var selectedItem = getSelectedItem();
function emptyComboboxs() {
for (var key in comboboxs) {
comboboxs[key].empty();
}
}
function getSelectedItem() {
var item = {};
for (var key in comboboxs) {
item[key] = comboboxs[key].val();
}
return item;
}
var $projectId = $('#ProjectId'); function SetComboboxsValues(item) {
var $version = $('#Version'); for (var key in comboboxs) {
var $languageCode = $('#LanguageCode'); comboboxs[key].val(item[key]);
var $format = $('#Format'); }
}
function addComboboxsEmptyItem() {
for (var key in comboboxs) {
comboboxs[key].append($('<option/>').val('').text(''));
}
}
function fillOptions() { function fillOptions() {
var selectedVersion = $version.val();
var selectedLanguageCode = $languageCode.val(); selectedItem = getSelectedItem();
var selectedFormat = $format.val();
var selectedProjectId = $projectId.val(); var selectedProjectId = $projectId.val();
$version.empty(); emptyComboboxs();
$languageCode.empty();
$format.empty();
$version.append($('<option/>').val('')); addComboboxsEmptyItem();
$languageCode.append($('<option/>').val(''));
$format.append($('<option/>').val(''));
var selectedProjectItems = comboboxItems.filter((item) => !selectedProjectId || item.projectId === selectedProjectId);
comboboxItems.forEach(function (item) { for (var key in selectedItem) {
if (!selectedProjectId || item.projectId === selectedProjectId) { var item = selectedProjectItems.find((item) => item[key] === selectedItem[key]);
appendVersion(item,selectedVersion,selectedLanguageCode,selectedFormat); if (item) {
appendLanguageCode(item,selectedLanguageCode,selectedVersion,selectedFormat); selectedItem[key] = item[key];
appendFormat(item,selectedFormat,selectedVersion,selectedLanguageCode); }else {
selectedItem[key] = '';
} }
});
}
function appendFormat(item,selectedFormat,selectedVersion,selectedLanguageCode) {
if(selectedVersion && selectedVersion !== item.version) {
return;
}
if(selectedLanguageCode && selectedLanguageCode !== item.languageCode) {
return;
} }
if($format.find('option[value="' + item.format + '"]').length === 0) { selectedProjectItems.forEach(function (item) {
var formatOption = $('<option>',{ for (var key in comboboxs) {
value: item.format, appendComboboxItem(comboboxs[key], item, key);
text: item.format
});
if(selectedFormat === item.format) {
formatOption.attr('selected', 'selected');
} }
$format.append(formatOption); });
}
}
function appendLanguageCode(item,selectedLanguageCode,selectedVersion,selectedFormat) {
if(selectedVersion && selectedVersion !== item.version) {
return;
}
if(selectedFormat && selectedFormat !== item.format) {
return;
}
if($languageCode.find('option[value="' + item.languageCode + '"]').length === 0) { SetComboboxsValues(selectedItem);
var languageCodeOption = $('<option>',{
value: item.languageCode,
text: item.languageCode
});
if(selectedLanguageCode === item.languageCode) {
languageCodeOption.attr('selected', 'selected');
}
$languageCode.append(languageCodeOption);
}
} }
function appendVersion(item,selectedVersion,selectedLanguageCode,selectedFormat) { function appendComboboxItem($combobox, item , key) {
if(selectedLanguageCode && item.languageCode !== selectedLanguageCode) { $.each(item, function (index, value) {
return; if(index !== key) {
} if(selectedItem[index] && selectedItem[index] !== value) {
if(selectedFormat && selectedFormat !== item.format) { return ;
return; }}
} });
if($combobox.find('option[value="' + item[key] + '"]').length === 0){
if($version.find('option[value="' + item.version + '"]').length === 0) { $combobox.append($('<option/>').val(item[key]).text(item[key]));
var versionOption = $('<option>', {
value: item.version,
text: item.version
})
if(selectedVersion === item.version) {
versionOption.attr('selected', 'selected');
}
$version.append(versionOption);
} }
} }
$projectId.on('change', function () {
fillOptions();
});
$version.on('change', function () {
fillOptions();
});
$languageCode.on('change', function () {
fillOptions();
});
$format.on('change', function () {
fillOptions();
});
var getFilter = function () { var getFilter = function () {
return { return {
projectId: $('#ProjectId').val(), projectId: $('#ProjectId').val(),

Loading…
Cancel
Save