Skip to content

Commit

Permalink
Added field to group form
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Aug 18, 2021
1 parent e911b7d commit 347bbdf
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 1 deletion.
3 changes: 3 additions & 0 deletions backend/src/main/resources/i18n/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,9 @@ label.by=By
label.source=Metadata Source
label.provider=Metadata Provider

label.url-validation-regex=URL validation regular expression
tooltip.url-validation-regex=URL validation regular expression

message.user-role-admin-group=Cannot change group for ROLE_ADMIN users.

message.delete-user-title=Delete User?
Expand Down
5 changes: 5 additions & 0 deletions ui/public/assets/schema/groups/group.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
"type": "string",
"minLength": 1,
"maxLength": 255
},
"validationRegex": {
"title": "label.url-validation-regex",
"description": "tooltip.url-validation-regex",
"type": "string"
}
}
}
4 changes: 3 additions & 1 deletion ui/src/app/admin/component/GroupForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faSpinner, faSave } from '@fortawesome/free-solid-svg-icons';
import Translate from '../../i18n/components/translate';

import { useGroupUiSchema } from '../hooks';
import { useGroupUiSchema, useGroupUiValidator } from '../hooks';
import { fields, widgets } from '../../form/component';
import { templates } from '../../form/component';
import { FormContext, setFormDataAction, setFormErrorAction } from '../../form/FormManager';
Expand All @@ -23,6 +23,7 @@ export function GroupForm ({group = {}, errors = [], loading = false, schema, on
};

const uiSchema = useGroupUiSchema();
const validator = useGroupUiValidator();

return (<>
<div className="container-fluid">
Expand All @@ -49,6 +50,7 @@ export function GroupForm ({group = {}, errors = [], loading = false, schema, on
<Form formData={group}
noHtml5Validate={true}
onChange={(form) => onChange(form)}
validate={validator}
schema={schema}
uiSchema={uiSchema}
FieldTemplate={templates.FieldTemplate}
Expand Down
16 changes: 16 additions & 0 deletions ui/src/app/admin/hooks.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import useFetch from 'use-http';
import isNil from 'lodash/isNil';
import {isValidRegex} from '../core/utility/is_valid_regex';
import API_BASE_PATH from '../App.constant';

export function useGroups (opts = { cachePolicy: 'no-cache' }) {
Expand All @@ -17,4 +19,18 @@ export function useGroupUiSchema () {
'ui:widget': 'textarea'
}
};
}

export function useGroupUiValidator() {
console.log('hi')
return (formData, errors) => {
console.log(formData, errors)
if (!isNil(formData?.validationRegex)) {
const isValid = isValidRegex(formData.validationRegex);
if (!isValid) {
errors.validationRegex.addError('message.invalid-regex-pattern');
}
}
return errors;
}
}

0 comments on commit 347bbdf

Please sign in to comment.