pgadmin4/web/pgadmin/tools/debugger/static/js/debugger_utils.js

102 lines
3.0 KiB
JavaScript

//////////////////////////////////////////////////////////////////////////
//
// pgAdmin 4 - PostgreSQL Tools
//
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
//////////////////////////////////////////////////////////////////////////
import {generateTitle} from '../../../sqleditor/static/js/sqleditor_title';
import {_set_dynamic_tab} from '../../../sqleditor/static/js/show_query_tool';
function getFunctionId(treeInfoObject) {
let objectId;
if(treeInfoObject) {
if (treeInfoObject.function && treeInfoObject.function._id) {
objectId = treeInfoObject.function._id;
} else if (treeInfoObject.edbfunc && treeInfoObject.edbfunc._id) {
objectId = treeInfoObject.edbfunc._id;
}
}
return objectId;
}
function getProcedureId(treeInfoObject) {
let objectId;
if(treeInfoObject) {
if (treeInfoObject.procedure && treeInfoObject.procedure._id) {
objectId = treeInfoObject.procedure._id;
} else if (treeInfoObject.edbproc && treeInfoObject.edbproc._id) {
objectId = treeInfoObject.edbproc._id;
}
}
return objectId;
}
function setDebuggerTitle(panel, preferences, function_name, schema_name, database_name, custom_title=null, pgBrowser=null) {
let debugger_title_placeholder = '';
if(custom_title) {
debugger_title_placeholder = custom_title;
} else {
debugger_title_placeholder = preferences['debugger_tab_title_placeholder'];
}
let function_data = function_name.split('(');
function_name = get_function_name(function_name);
let args_list = function_data[function_data.length - 1].split(')');
let args = '';
if(args_list.length > 0) {
args = args.concat(args_list[0]);
}
let title_data = {
'function_name': function_name,
'args': args,
'schema': schema_name,
'database': database_name,
'type': 'debugger',
};
let title = generateTitle(debugger_title_placeholder, title_data);
_set_dynamic_tab(pgBrowser, preferences['dynamic_tabs']);
panel.title('<span>'+ title +'</span>');
}
function get_function_name(function_name) {
let function_data = function_name.split('(');
function_data.splice(-1, 1);
let index = null;
let func_name = '';
for(index=0; index < function_data.length; index++) {
func_name = func_name.concat(function_data[index]);
if (index != function_data.length -1) {
func_name = func_name.concat('(');
}
}
return func_name;
}
function getAppropriateLabel(treeInfo) {
if (treeInfo.function) {
return treeInfo.function.label;
} else if (treeInfo.trigger_function) {
return treeInfo.trigger_function.label;
} else if (treeInfo.trigger) {
return treeInfo.trigger.label;
} else if(treeInfo.edbfunc) {
return treeInfo.edbfunc.label;
} else if(treeInfo.edbproc) {
return treeInfo.edbproc.label;
}
else {
return treeInfo.procedure.label;
}
}
module.exports = {
getFunctionId: getFunctionId,
getProcedureId: getProcedureId,
setDebuggerTitle: setDebuggerTitle,
getAppropriateLabel: getAppropriateLabel,
};