????
Current Path : C:/opt/pgsql/pgAdmin 4/web/pgadmin/static/js/Dialogs/ |
Current File : C:/opt/pgsql/pgAdmin 4/web/pgadmin/static/js/Dialogs/ChangeOwnershipContent.jsx |
///////////////////////////////////////////////////////////// // // pgAdmin 4 - PostgreSQL Tools // // Copyright (C) 2013 - 2024, The pgAdmin Development Team // This software is released under the PostgreSQL Licence // ////////////////////////////////////////////////////////////// import { makeStyles } from '@mui/styles'; import React from 'react'; import PropTypes from 'prop-types'; import gettext from 'sources/gettext'; import BaseUISchema from '../SchemaView/base_schema.ui'; import SchemaView from '../SchemaView'; import { isEmptyString } from 'sources/validators'; class ChangeOwnershipSchema extends BaseUISchema { constructor(deletedUser, adminUserList, noOfSharedServers) { super({ newUser: '', }); this.deletedUser = deletedUser; this.adminUserList = adminUserList; this.noOfSharedServers = noOfSharedServers; } get baseFields() { let self = this; return [ { id: 'note', type: 'note', text: gettext('Select the user that will take ownership of the shared servers created by <b>' + self.deletedUser + '</b>. <b>' + self.noOfSharedServers + '</b> shared servers are currently owned by this user. </br></br> Clicking on the “Change” button will either change ownership if a user is selected or delete any shared servers if no user is selected. There is no way to reverse this action.'), }, { id: 'newUser', label: gettext('User'), type: 'select', controlProps: {allowClear: true}, options: self.adminUserList } ]; } validate(state) { let obj = this; /* mview definition validation*/ if (isEmptyString(state.newUser)) { obj.warningText = gettext('The shared servers owned by <b>'+ obj.deletedUser +'</b> will be deleted. Do you wish to continue?'); } else { obj.warningText = null; } } } const useStyles = makeStyles((theme)=>({ root: { ...theme.mixins.tabPanel, }, })); export default function ChangeOwnershipContent({onSave, onClose, deletedUser, userList, noOfSharedServers}) { const classes = useStyles(); const objChangeOwnership = new ChangeOwnershipSchema(deletedUser, userList, noOfSharedServers); return<SchemaView formType={'dialog'} getInitData={() => { /*This is intentional (SonarQube)*/ }} schema={objChangeOwnership} viewHelperProps={{ mode: 'create', }} customSaveBtnName={'Change'} onSave={onSave} onClose={onClose} hasSQL={false} disableSqlHelp={true} disableDialogHelp={true} isTabView={false} formClassName={classes.root} />; } ChangeOwnershipContent.propTypes = { onSave: PropTypes.func, onClose: PropTypes.func, userList: PropTypes.array, noOfSharedServers: PropTypes.number, deletedUser: PropTypes.string };