MCPcopy Create free account
hub / github.com/pgadmin-org/pgadmin4 / menuSearch

Function menuSearch

web/pgadmin/static/js/QuickSearch/menuitems_help.js:18–63  ·  view source on GitHub ↗
(param, props)

Source from the content-addressed store, hash-verified

16};
17
18export function menuSearch(param, props) {
19 param = param.trim();
20 const setState = props.setState;
21 let result = [];
22
23 const iterItem = (subMenus, path, parentPath) => {
24 subMenus.forEach((subMenu) =>{
25 if(subMenu instanceof NewMenuItem) {
26 if(subMenu.type != 'separator' && subMenu?.label?.toLowerCase().indexOf(param.toLowerCase()) != -1){
27 let localPath = path;
28 if(parentPath) {
29 localPath = `${parentPath} > ${path} `;
30 }
31 subMenu.path = localPath;
32 let selectedNode = pgAdmin.Browser.tree.selected();
33 if(subMenu.path == 'Object') {
34 if(selectedNode && selectedNode._metadata.data._type == subMenu.module.parent_type) {
35 result.push(subMenu);
36 }
37 } else {
38 result.push(subMenu);
39 }
40 }
41 if(subMenu.getMenuItems()) {
42 iterItem(subMenu.getMenuItems(), getMenuName(subMenu), path);
43 }
44 } else if(typeof(subMenu) == 'object' && !(subMenu instanceof NewMenuItem)) {
45 iterItem(Object.values(subMenu), path, parentPath);
46 } else {
47 iterItem(subMenu, path, parentPath);
48 }
49 });
50 };
51
52 const mainMenus = pgAdmin.Browser.MainMenus;
53 mainMenus.forEach((menu) => {
54 const subMenus = menu.getMenuItems();
55 iterItem(Object.values(subMenus), getMenuName(menu));
56 });
57
58 setState(state => ({
59 ...state,
60 fetched: true,
61 data: result,
62 }));
63}

Callers 1

initSearchFunction · 0.90

Calls 4

iterItemFunction · 0.85
getMenuNameFunction · 0.85
setStateFunction · 0.85
getMenuItemsMethod · 0.45

Tested by

no test coverage detected