芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/.cache/ee/admin/containers/Roles/CreatePage/index.js
import React, { useState, useRef } from 'react'; import { Header } from '@buffetjs/custom'; import { Padded } from '@buffetjs/core'; import moment from 'moment'; import { Formik } from 'formik'; import { get, isEmpty } from 'lodash'; import { useIntl } from 'react-intl'; import { BaselineAlignment, CheckPagePermissions, request, useGlobalContext, } from 'strapi-helper-plugin'; import { useHistory, useRouteMatch } from 'react-router-dom'; import adminPermissions from '../../../../../admin/src/permissions'; import { useFetchPermissionsLayout, useFetchRole } from '../../../../../admin/src/hooks'; import PageTitle from '../../../../../admin/src/components/SettingsPageTitle'; import ContainerFluid from '../../../../../admin/src/components/ContainerFluid'; import FormCard from '../../../../../admin/src/components/FormBloc'; import { ButtonWithNumber, Permissions } from '../../../../../admin/src/components/Roles'; import SizedInput from '../../../../../admin/src/components/SizedInput'; import { formatPermissionsToApi } from '../../../../../admin/src/utils'; import schema from './utils/schema'; const CreatePage = () => { const { formatMessage } = useIntl(); const [isSubmiting, setIsSubmiting] = useState(false); const { replace } = useHistory(); const permissionsRef = useRef(); const { emitEvent, settingsBaseURL } = useGlobalContext(); const params = useRouteMatch(`${settingsBaseURL}/roles/duplicate/:id`); const id = get(params, 'params.id', null); const { isLoading: isLayoutLoading, data: permissionsLayout } = useFetchPermissionsLayout(); const { role, permissions: rolePermissions, isLoading: isRoleLoading } = useFetchRole(id); const headerActions = (handleSubmit, handleReset) => [ { label: formatMessage({ id: 'app.components.Button.reset', defaultMessage: 'Reset', }), onClick: () => { handleReset(); permissionsRef.current.resetForm(); }, color: 'cancel', type: 'button', }, { label: formatMessage({ id: 'app.components.Button.save', defaultMessage: 'Save', }), onClick: handleSubmit, color: 'success', type: 'submit', isLoading: isSubmiting, }, ]; const handleCreateRoleSubmit = data => { strapi.lockAppWithOverlay(); setIsSubmiting(true); if (id) { emitEvent('willDuplicateRole'); } else { emitEvent('willCreateNewRole'); } Promise.resolve( request('/admin/roles', { method: 'POST', body: data, }) ) .then(async res => { const permissionsToSend = permissionsRef.current.getPermissions(); if (id) { emitEvent('didDuplicateRole'); } else { emitEvent('didCreateNewRole'); } if (res.data.id && !isEmpty(permissionsToSend)) { await request(`/admin/roles/${res.data.id}/permissions`, { method: 'PUT', body: { permissions: formatPermissionsToApi(permissionsToSend) }, }); } return res; }) .then(res => { setIsSubmiting(false); strapi.notification.toggle({ type: 'success', message: { id: 'Settings.roles.created' }, }); replace(`${settingsBaseURL}/roles/${res.data.id}`); }) .catch(err => { console.error(err); setIsSubmiting(false); strapi.notification.toggle({ type: 'warning', message: { id: 'notification.error' }, }); }) .finally(() => { strapi.unlockApp(); }); }; const actions = [
console.log('Open user modal')} key="user-button"> {formatMessage({ id: 'Settings.roles.form.button.users-with-role', defaultMessage: 'Users with this role', })}
, ]; const defaultDescription = `${formatMessage({ id: 'Settings.roles.form.created', })} ${moment().format('LL')}`; return ( <>
{({ handleSubmit, values, errors, handleReset, handleChange, handleBlur }) => (
{!isLayoutLoading && !isRoleLoading && (
)}
)}
> ); }; export default () => (
); export { CreatePage };