mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-09-26 11:29:12 +02:00
Merge branch 'ent-12168-GISS-Jerarquia-en-vista-de-arbol-de-servicios-no-se-muestra-bien-al-hacer-búsquedas-en-el-filtro-Nodo-y-Meta' into 'develop'
Ent 12168 giss jerarquia en vista de arbol de servicios no se muestra bien al hacer búsquedas en el filtro nodo y meta See merge request artica/pandorafms!6547
This commit is contained in:
commit
206bdc4acb
@ -333,6 +333,7 @@ class TreeService extends Tree
|
|||||||
$services[$service['id']]['id'] = $service['id'];
|
$services[$service['id']]['id'] = $service['id'];
|
||||||
$services[$service['id']]['description'] = $service['description'];
|
$services[$service['id']]['description'] = $service['description'];
|
||||||
$services[$service['id']]['serviceDetail'] = 'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.(int) $service['id'];
|
$services[$service['id']]['serviceDetail'] = 'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.(int) $service['id'];
|
||||||
|
$services[$service['id']]['title'] = services_get_parents_title((int) $service['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $services;
|
return $services;
|
||||||
@ -627,6 +628,7 @@ class TreeService extends Tree
|
|||||||
$tmp['type'] = 'services';
|
$tmp['type'] = 'services';
|
||||||
$tmp['rootType'] = 'services';
|
$tmp['rootType'] = 'services';
|
||||||
$tmp['children'] = [];
|
$tmp['children'] = [];
|
||||||
|
$tmp['servicesChildren'] = services_get_services_children($item->service()->id());
|
||||||
$tmp['serviceDetail'] = ui_get_full_url(
|
$tmp['serviceDetail'] = ui_get_full_url(
|
||||||
'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.$item->service()->id()
|
'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.$item->service()->id()
|
||||||
);
|
);
|
||||||
@ -731,7 +733,10 @@ class TreeService extends Tree
|
|||||||
if (isset($this->filter['searchService']) === true
|
if (isset($this->filter['searchService']) === true
|
||||||
&& empty($this->filter['searchService']) === false
|
&& empty($this->filter['searchService']) === false
|
||||||
) {
|
) {
|
||||||
return " AND (ts.name LIKE '%".$this->filter['searchService']."%' OR ts.description LIKE '%".$this->filter['searchService']."%')";
|
$whereAncestors = ' AND ts.name LIKE "%'.$this->filter['searchService'].'%"
|
||||||
|
OR ts.description LIKE "%'.$this->filter['searchService'].'%"';
|
||||||
|
|
||||||
|
return $whereAncestors;
|
||||||
}
|
}
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
|
@ -1486,6 +1486,11 @@ var TreeController = {
|
|||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Search service criterion
|
||||||
|
const searchFilter = controller.filter.searchService;
|
||||||
|
if (searchFilter && controller.finded !== 1) {
|
||||||
|
rawTree = _filterItems(rawTree, searchFilter);
|
||||||
|
}
|
||||||
_.each(rawTree, function(element) {
|
_.each(rawTree, function(element) {
|
||||||
element.jqObject = _processNode($group, element);
|
element.jqObject = _processNode($group, element);
|
||||||
});
|
});
|
||||||
@ -1551,6 +1556,67 @@ var TreeController = {
|
|||||||
|
|
||||||
// Add again the hover event to the 'force_callback' elements
|
// Add again the hover event to the 'force_callback' elements
|
||||||
forced_title_callback();
|
forced_title_callback();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the tree based on a search criterion
|
||||||
|
*/
|
||||||
|
function _filterItems(rawTree, searched) {
|
||||||
|
const ancestors = [];
|
||||||
|
const father = [];
|
||||||
|
const newTree = [];
|
||||||
|
const tmpTree = [];
|
||||||
|
rawTree.map((raw, index) => {
|
||||||
|
if (raw.type === "services") {
|
||||||
|
if (raw.servicesChildren.length !== 0) {
|
||||||
|
// search at parent level
|
||||||
|
let descr = raw.description.toLowerCase();
|
||||||
|
let sear = searched.toLowerCase();
|
||||||
|
let findedPadre = descr.indexOf(sear);
|
||||||
|
if (findedPadre === -1) {
|
||||||
|
father.push(raw.id);
|
||||||
|
} else if (findedPadre >= 0) {
|
||||||
|
ancestors.push(raw.id);
|
||||||
|
} else {
|
||||||
|
//we mark the father as found
|
||||||
|
controller.finded = 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let finded = raw.description.indexOf(searched);
|
||||||
|
if (finded === -1) {
|
||||||
|
delete rawTree[index];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (ancestors.length >= 1) {
|
||||||
|
ancestors.map(ancestor => {
|
||||||
|
newTree.push(
|
||||||
|
rawTree.filter(item => item.id === parseInt(ancestor))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
return newTree[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (father.length >= 1) {
|
||||||
|
let filterfather = [...new Set(father)];
|
||||||
|
|
||||||
|
filterfather.map(father => {
|
||||||
|
tmpTree.push(rawTree.filter(raw => raw.id == father));
|
||||||
|
});
|
||||||
|
|
||||||
|
let tree = [...new Set(tmpTree)];
|
||||||
|
tree.map(item => {
|
||||||
|
let tmpItem = item[0];
|
||||||
|
newTree.push(tmpItem);
|
||||||
|
});
|
||||||
|
|
||||||
|
return newTree;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rawTree.filter(item => item);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
load: function() {
|
load: function() {
|
||||||
this.reload();
|
this.reload();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user