mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
/////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin 4 - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2013 - 2022, The pgAdmin Development Team
|
|
// 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;
|
|
}
|
|
}
|
|
},
|
|
];
|
|
}
|
|
|
|
|
|
}
|