pgadmin4/web/pgadmin/browser/server_groups/servers/static/js/membership.ui.js

60 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-08-10 02:13:51 -05:00
/////////////////////////////////////////////////////////////
//
// pgAdmin 4 - PostgreSQL Tools
//
2022-01-04 02:24:25 -06:00
// Copyright (C) 2013 - 2022, The pgAdmin Development Team
2021-08-10 02:13:51 -05:00
// This software is released under the PostgreSQL Licence
//
//////////////////////////////////////////////////////////////
import gettext from 'sources/gettext';
import BaseUISchema from 'sources/SchemaView/base_schema.ui';
import { getNodeListByName } from '../../../../static/js/node_ajax';
export function getMembershipSchema(nodeObj, treeNodeInfo, itemNodeData) {
return new MembershipSchema(
()=>getNodeListByName('role', treeNodeInfo, itemNodeData, {}, ()=>true),
);
}
export default class MembershipSchema extends BaseUISchema {
constructor(roleMembersOptions) {
super({
role: undefined,
admin: undefined
});
this.roleMembersOptions = roleMembersOptions;
}
get baseFields() {
return [{
id: 'role', label: gettext('User/Role'), type:'text',
editable: true,
cell: ()=>({
cell: 'select', options: this.roleMembersOptions,
controlProps: {
allowClear: false,
}
}),
noEmpty: true,
minWidth: 300
},
{
id: 'admin', label: gettext('WITH ADMIN'),
cell: 'checkbox', type: 'checkbox',
minWidth: 300,
deps: ['role'],
depChange: (state) => {
if(_.isUndefined(state.admin)) {
state.admin = false;
}
}
},
];
}
}