Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
ChangeOwnershipContent.jsx87 linesDownload Raw Back to Dialogs
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 { makeStyles } from '@mui/styles';11import React from 'react';12import PropTypes from 'prop-types';13import gettext from 'sources/gettext';14import BaseUISchema from '../SchemaView/base_schema.ui';15import SchemaView from '../SchemaView';16import { isEmptyString } from 'sources/validators';17 18class ChangeOwnershipSchema extends BaseUISchema {19  constructor(deletedUser, adminUserList, noOfSharedServers) {20    super({21      newUser: '',22    });23    this.deletedUser = deletedUser;24    this.adminUserList = adminUserList;25    this.noOfSharedServers = noOfSharedServers;26  }27 28  get baseFields() {29    let self = this;30    return [31      {32        id: 'note', type: 'note',33        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.'),34      }, {35        id: 'newUser', label: gettext('User'),36        type: 'select', controlProps: {allowClear: true},37        options: self.adminUserList38      }39    ];40  }41  validate(state) {42    let obj = this;43 44    /* mview definition validation*/45    if (isEmptyString(state.newUser)) {46      obj.warningText = gettext('The shared servers owned by <b>'+ obj.deletedUser +'</b> will be deleted. Do you wish to continue?');47    } else {48      obj.warningText = null;49    }50  }51}52 53const useStyles = makeStyles((theme)=>({54  root: {55    ...theme.mixins.tabPanel,56  },57}));58 59export default function ChangeOwnershipContent({onSave, onClose, deletedUser, userList, noOfSharedServers}) {60  const classes = useStyles();61  const objChangeOwnership = new ChangeOwnershipSchema(deletedUser, userList, noOfSharedServers);62 63  return<SchemaView64    formType={'dialog'}65    getInitData={() => { /*This is intentional (SonarQube)*/ }}66    schema={objChangeOwnership}67    viewHelperProps={{68      mode: 'create',69    }}70    customSaveBtnName={'Change'}71    onSave={onSave}72    onClose={onClose}73    hasSQL={false}74    disableSqlHelp={true}75    disableDialogHelp={true}76    isTabView={false}77    formClassName={classes.root}78  />;79}80ChangeOwnershipContent.propTypes = {81  onSave: PropTypes.func,82  onClose: PropTypes.func,83  userList: PropTypes.array,84  noOfSharedServers: PropTypes.number,85  deletedUser: PropTypes.string86};87 
codekingpro/portable-devtools · Team Ai