Commit babb90b8 authored by Evren Kutar's avatar Evren Kutar

filter interface fix for diff function

parent b5cb0d0d
...@@ -319,17 +319,20 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -319,17 +319,20 @@ angular.module('formService', ['ui.bootstrap'])
}); });
} }
}); });
formitem.filteredItems = generator.get_diff_array(angular.copy(formitem.titleMap), angular.copy(formitem.selectedFilteredItems)); formitem.filteredItems = generator.get_diff_array(angular.copy(formitem.titleMap), angular.copy(formitem.selectedFilteredItems), 1);
}) })
}; };
var modelItems = []; var modelItems = [];
var modelKeys = [];
angular.forEach(scope.model[k], function (value, mkey) { angular.forEach(scope.model[k], function (value, mkey) {
modelItems.push({ modelItems.push({
"value": value[v.schema[0].name].key, "value": value[v.schema[0].name].key,
"name": value[v.schema[0].name].unicode "name": value[v.schema[0].name].unicode
}) });
modelKeys.push(value[v.schema[0].name].key);
}); });
scope.model[k] = angular.copy(modelKeys);
formitem = { formitem = {
type: "template", type: "template",
...@@ -346,13 +349,6 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -346,13 +349,6 @@ angular.module('formService', ['ui.bootstrap'])
filteredItems: [], filteredItems: [],
selectedFilteredItems: modelItems, selectedFilteredItems: modelItems,
titleMap: scope.generateTitleMap(modelScope), titleMap: scope.generateTitleMap(modelScope),
onSelect: function (item) {
scope.model[k] = item.value;
},
onDropdownSelect: function (item, inputname) {
scope.model[k] = item.value;
jQuery('input[name=' + inputname + ']').val(item.name);
},
appendFiltered: function (filterValue) { appendFiltered: function (filterValue) {
if (filterValue.length > 2) { if (filterValue.length > 2) {
formitem.filteredItems = []; formitem.filteredItems = [];
...@@ -368,14 +364,14 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -368,14 +364,14 @@ angular.module('formService', ['ui.bootstrap'])
if(!selectedItemsModel){return;} if(!selectedItemsModel){return;}
formitem.selectedFilteredItems = formitem.selectedFilteredItems.concat(selectedItemsModel); formitem.selectedFilteredItems = formitem.selectedFilteredItems.concat(selectedItemsModel);
formitem.appendFiltered(formitem.filterValue); formitem.appendFiltered(formitem.filterValue);
scope.model[k] = formitem.dataToModel(selectedItemsModel); scope.model[k] = (scope.model[k] || []).concat(formitem.dataToModel(selectedItemsModel));
}, },
deselect: function (selectedFilteredItemsModel) { deselect: function (selectedFilteredItemsModel) {
if(!selectedFilteredItemsModel){return;} if(!selectedFilteredItemsModel){return;}
formitem.selectedFilteredItems = generator.get_diff_array(angular.copy(formitem.selectedFilteredItems), angular.copy(selectedFilteredItemsModel)); formitem.selectedFilteredItems = generator.get_diff_array(angular.copy(formitem.selectedFilteredItems), angular.copy(selectedFilteredItemsModel));
formitem.appendFiltered(formitem.filterValue); formitem.appendFiltered(formitem.filterValue);
formitem.filteredItems = formitem.filteredItems.concat(selectedFilteredItemsModel); formitem.filteredItems = formitem.filteredItems.concat(selectedFilteredItemsModel);
scope.model[k] = formitem.dataToModel(formitem.selectedFilteredItems); scope.model[k] = generator.get_diff_array(scope.model[k] || [], formitem.dataToModel(selectedFilteredItemsModel));
}, },
dataToModel: function (data) { dataToModel: function (data) {
var dataValues = []; var dataValues = [];
...@@ -645,11 +641,17 @@ angular.module('formService', ['ui.bootstrap']) ...@@ -645,11 +641,17 @@ angular.module('formService', ['ui.bootstrap'])
return result; return result;
}; };
generator.get_diff_array = function (array1, array2) { generator.get_diff_array = function (array1, array2, way) {
var result = []; var result = [];
angular.forEach(array1, function (value, key) { angular.forEach(array1, function (value, key) {
if (angular.toJson(array2).indexOf(value.value) < 0) { if (way === 1) {
result.push(value); if (angular.toJson(array2).indexOf(value.value) < 0) {
result.push(value);
}
} else {
if (angular.toJson(array2).indexOf(angular.toJson(value)) < 0) {
result.push(value);
}
} }
}); });
return result; return result;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment