2022-08-05 03:35:53 -05:00
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' ,
2022-09-14 04:38:05 -05:00
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.' ) ,
2022-08-05 03:35:53 -05:00
} , {
id : 'newUser' , label : gettext ( 'User' ) ,
type : 'select' , controlProps : { allowClear : true } ,
2022-09-14 04:38:05 -05:00
options : self . adminUserList
2022-08-05 03:35:53 -05:00
}
] ;
}
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 ;
}
}
}
export default function ChangeOwnershipContent ( { onSave , onClose , deletedUser , userList , noOfSharedServers } ) {
2024-06-06 06:43:12 -05:00
2022-08-05 03:35:53 -05:00
const objChangeOwnership = new ChangeOwnershipSchema ( deletedUser , userList , noOfSharedServers ) ;
2024-06-17 05:15:40 -05:00
return < SchemaView
2022-08-05 03:35:53 -05:00
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 }
/ > ;
}
ChangeOwnershipContent . propTypes = {
onSave : PropTypes . func ,
onClose : PropTypes . func ,
userList : PropTypes . array ,
noOfSharedServers : PropTypes . number ,
deletedUser : PropTypes . string
} ;