- added duplicate form from another call functionality;

- fixed styles;
- added copy icon for user emails;
- added hotkey to open loginadmin page quickly;
- added modal for archiving document;
- added modal for create appointment;
This commit is contained in:
Vitalii Kiiko
2024-11-28 15:54:08 +01:00
parent 6f11070259
commit 7dad6c056d
11 changed files with 362 additions and 43 deletions

View File

@@ -0,0 +1,106 @@
import React, { useEffect, useState } from 'react';
import { __ } from '@wordpress/i18n';
import { isEmpty } from 'ramda';
import { wrap } from 'object-path-immutable';
// components
import { Button } from 'primereact/button';
import { Dialog } from 'primereact/dialog';
import { InputTextarea } from 'primereact/inputtextarea';
import { Dropdown } from 'primereact/dropdown';
import { classNames } from 'primereact/utils';
const ArchiveDocument = ({ ndg = '', fileId = 0 }) => {
const [loading, setLoading] = useState(false);
const [isVisibleDialog, setIsVisibleDialog] = useState(false);
const [modalData, setModalData] = useState({});
const [categories, setCategories] = useState([]);
const openArchivationModal = () => {
setIsVisibleDialog(true);
setModalData({
description: '',
categoryId: 0,
fileId
});
}
const headerDialog = () => {
return <span>{__('Archive document', 'gepafin')}</span>;
}
const hideDialog = () => {
setIsVisibleDialog(false);
setModalData({});
}
const setValue = (name, value) => {
const newData = wrap(modalData).set(name, value).value();
setModalData(newData);
}
const footerDialog = () => {
return <div>
<Button type="button" label={__('Anulla', 'gepafin')} onClick={hideDialog} outlined/>
<Button
type="button"
disabled={loading}
label={__('Invia', 'gepafin')} onClick={submitData}/>
</div>
}
const submitData = () => {
console.log('submitData', modalData)
}
useEffect(() => {
setCategories([
{value: 1, label: 'Type 1'},
{value: 2, label: 'Type 2'},
])
}, []);
return (
<>
{!isEmpty(ndg)
? <Button icon="pi pi-file-export"
rounded
onClick={openArchivationModal}
outlined
severity="info"
aria-label={__('Mostra', 'gepafin')}/>
: null}
<Dialog
visible={isVisibleDialog}
modal
header={headerDialog}
footer={footerDialog}
style={{ maxWidth: '600px', width: '100%' }}
onHide={hideDialog}>
<div className="appForm__field">
<label className={classNames({ 'p-error': !modalData.categoryId || modalData.categoryId === 0 })}>
{__('Classificazione', 'gepafin')}*
</label>
<Dropdown
value={modalData.categoryId}
invalid={!modalData.categoryId || modalData.categoryId === 0}
onChange={(e) => setValue('categoryId', e.value)}
options={categories}/>
</div>
<div className="appForm__field">
<label className={classNames({ 'p-error': isEmpty(modalData.description) })}>
{__('Descrizione', 'gepafin')}
</label>
<InputTextarea
value={modalData.description}
invalid={isEmpty(modalData.description)}
onChange={(e) => setValue('description', e.target.value)}
rows={3}
cols={30}/>
</div>
</Dialog>
</>
)
}
export default ArchiveDocument;