codekingpro/portable-devtools
114k
1/////////////////////////////////////////////////////////////2//3// pgAdmin 4 - PostgreSQL Tools4//5// Copyright (C) 2013 - 2024, The pgAdmin Development Team6// This software is released under the PostgreSQL Licence7//8//////////////////////////////////////////////////////////////9 10import gettext from 'sources/gettext';11import BaseUISchema from 'sources/SchemaView/base_schema.ui';12import { getNodeListByName } from '../../../../static/js/node_ajax';13 14 15export function getMembershipSchema(nodeObj, treeNodeInfo, itemNodeData) {16 return new MembershipSchema(17 ()=>getNodeListByName('role', treeNodeInfo, itemNodeData, {}, ()=>true),18 );19}20 21 22export default class MembershipSchema extends BaseUISchema {23 constructor(roleMembersOptions) {24 super({25 role: undefined,26 admin: undefined27 });28 this.roleMembersOptions = roleMembersOptions;29 }30 31 get baseFields() {32 return [{33 id: 'role', label: gettext('User/Role'), type:'text',34 editable: true,35 cell: ()=>({36 cell: 'select', options: this.roleMembersOptions,37 controlProps: {38 allowClear: false,39 }40 }),41 noEmpty: true,42 minWidth: 30043 },44 {45 id: 'admin', label: gettext('WITH ADMIN'),46 cell: 'checkbox', type: 'checkbox',47 minWidth: 300,48 deps: ['role'],49 depChange: (state) => {50 if(_.isUndefined(state.admin)) {51 state.admin = false;52 }53 }54 },55 ];56 }57 58 59}60 