Ensure the database and schema restriction controls are not shown as a drop-down. Fixes #7255

This commit is contained in:
Pradip Parkale 2022-04-09 11:49:02 +05:30 committed by Akshay Joshi
parent efa971edb4
commit c2f1a7bdc5
4 changed files with 12 additions and 3 deletions

View File

@ -18,6 +18,7 @@ Housekeeping
************
| `Issue #6131 <https://redmine.postgresql.org/issues/6131>`_ - Port query tool to React.
| `Issue #7255 <https://redmine.postgresql.org/issues/7255>`_ - Ensure the database and schema restriction controls are not shown as a drop-down.
Bug fixes
*********

View File

@ -198,7 +198,7 @@ export default class DatabaseSchema extends BaseUISchema {
helpMessage: gettext('Note: Changes to the schema restriction will require the Schemas node in the browser to be refreshed before they will be shown.'),
helpMessageMode: ['edit', 'create'],
controlProps: {
multiple: true, allowClear: false, creatable: true,
multiple: true, allowClear: false, creatable: true, noDropdown: true, placeholder: 'Specify the schemas to be restrict...'
}, depChange: (state)=>{
if(!_.isUndefined(state.oid)) {
obj.informText = undefined;

View File

@ -415,7 +415,7 @@ export default class ServerSchema extends BaseUISchema {
id: 'db_res', label: gettext('DB restriction'), type: 'select', group: gettext('Advanced'),
options: [],
mode: ['properties', 'edit', 'create'], readonly: obj.isConnected, controlProps: {
multiple: true, allowClear: false, creatable: true, noDropdown: true},
multiple: true, allowClear: false, creatable: true, noDropdown: true, placeholder: 'Specify the databases to be restrict...'},
},
{
id: 'passfile', label: gettext('Password file'), type: 'file',

View File

@ -895,6 +895,8 @@ export const InputSelect = forwardRef(({
components: {
Option: CustomSelectOption,
SingleValue: CustomSelectSingleValue,
IndicatorSeparator: (props) => controlProps.noDropdown ? null: <RSComponents.IndicatorSeparator {...props} />,
DropdownIndicator: (props) => controlProps.noDropdown ? null: <RSComponents.DropdownIndicator {...props} />
},
isMulti: Boolean(controlProps.multiple),
openMenuOnClick: !readonly,
@ -915,7 +917,13 @@ export const InputSelect = forwardRef(({
);
} else {
return (
<CreatableSelect ref={ref} {...commonProps} />
<CreatableSelect
ref={ref}
{...commonProps}
noOptionsMessage={() =>
!controlProps.noDropdown ? 'No options' : null
}
/>
);
}
});