- added add company page;

- connected api for delega download, upload and deleting;
This commit is contained in:
Vitalii Kiiko
2024-10-09 17:33:06 +02:00
parent b139825b47
commit 8cac4ea23e
11 changed files with 547 additions and 71 deletions

View File

@@ -7,22 +7,21 @@ import FileUploadService from '../../service/file-upload-service';
import { FileUpload } from 'primereact/fileupload';
import { Tag } from 'primereact/tag';
import { Button } from 'primereact/button';
import CompanyService from '../../service/company-service';
const FileuploadStandalone = ({
const FileuploadDelega = ({
fieldName,
setDataFn,
defaultValue = [],
accept = ['image/*'],
doctype = 'images',
accept = [],
maxSize = 100000000,
emptyText = __('Trascina qui il tuo file', 'gepafin'),
chooseLabel = __('Aggiungi immagine', 'gepafin'),
chooseLabel = __('Aggiungi delega', 'gepafin'),
multiple = false,
sourceId = 0,
source = 'application',
companyId = 0,
disabled = false
}) => {
const [stateFieldData, setStateFieldData] = useState([]);
const [stateFieldData, setStateFieldData] = useState({});
const [acceptFormats, setAcceptFormats] = useState('');
const inputRef = useRef();
@@ -31,10 +30,7 @@ const FileuploadStandalone = ({
for (const file of event.files) {
formData.append('file', file)
}
FileUploadService.uploadFile(sourceId, formData, callback, errorCallback, [
['documentType', doctype.toUpperCase()],
['sourceType', source.toUpperCase()]
]);
CompanyService.uploadCompanyDelega(companyId, formData, callback, errorCallback);
};
const callback = (data) => {
@@ -51,11 +47,12 @@ const FileuploadStandalone = ({
}
const itemTemplate = (file) => {
console.log('file', file)
return (
<div className="appForm__fileUploadItem">
<div>
<span className="appForm__fileUploadItemName">
{file.name}
{file.fileName}
</span>
</div>
<div>
@@ -77,11 +74,10 @@ const FileuploadStandalone = ({
const onTemplateRemove = (file) => {
if (file.id) {
FileUploadService.deleteFile(
{},
CompanyService.deleteDelega(
companyId,
(data) => dCallback(data, file.id),
dErrorCallback,
[['id', file.id]]
dErrorCallback
);
} else {
const files = inputRef.current.getFiles()
@@ -120,7 +116,9 @@ const FileuploadStandalone = ({
const MIMEtype = new RegExp(acceptFormats);
return Array.prototype.every.call(files, function passesAcceptedFormat(file) {
return MIMEtype.test(file.type);
const fileExtension = `.${file.name.split('.').pop().toLowerCase()}`;
const fileType = file.type;
return MIMEtype.test(fileType) || MIMEtype.test(fileExtension);
});
}
@@ -128,6 +126,13 @@ const FileuploadStandalone = ({
setStateFieldData(defaultValue);
}, []);
useEffect(() => {
if (inputRef.current) {
inputRef.current.setUploadedFiles(multiple ? defaultValue : [defaultValue]);
console.log('inputRef.current', inputRef.current, multiple ? defaultValue : [defaultValue])
}
}, [defaultValue]);
useEffect(() => {
// eslint-disable-next-line no-useless-escape
setAcceptFormats(accept.join(',').replace(/\*/g, '.\*').replace(/,/g, '|'));
@@ -135,13 +140,14 @@ const FileuploadStandalone = ({
useEffect(() => {
if (inputRef.current) {
inputRef.current.setUploadedFiles(stateFieldData);
inputRef.current.setUploadedFiles(multiple ? stateFieldData : [stateFieldData]);
}
setDataFn(fieldName, [...stateFieldData], { shouldValidate: true });
setDataFn(fieldName, multiple ? [...stateFieldData] : stateFieldData, { shouldValidate: true });
}, [stateFieldData])
return (
sourceId && sourceId !== 0
companyId && companyId !== 0
? <FileUpload
ref={inputRef}
disabled={disabled}
@@ -164,4 +170,4 @@ const FileuploadStandalone = ({
)
}
export default FileuploadStandalone;
export default FileuploadDelega;

View File

@@ -126,7 +126,9 @@ const Fileupload = ({
const MIMEtype = new RegExp(acceptFormats);
return Array.prototype.every.call(files, function passesAcceptedFormat(file) {
return MIMEtype.test(file.type);
const fileExtension = `.${file.name.split('.').pop().toLowerCase()}`;
const fileType = file.type;
return MIMEtype.test(fileType) || MIMEtype.test(fileExtension);
});
}

View File

@@ -127,7 +127,9 @@ const FileuploadAsync = ({
const MIMEtype = new RegExp(acceptFormats);
return Array.prototype.every.call(files, function passesAcceptedFormat(file) {
return MIMEtype.test(file.type);
const fileExtension = `.${file.name.split('.').pop().toLowerCase()}`;
const fileType = file.type;
return MIMEtype.test(fileType) || MIMEtype.test(fileExtension);
});
}

View File

@@ -54,12 +54,19 @@ const TopBarProfileMenu = ({ menuLeftRef }) => {
command: () => {
navigate('/profilo-aziendale')
},
enable: !intersection(permissions, ['MANAGE_TENDERS']).length
enable: !intersection(permissions, ['MANAGE_TENDERS']).length && companies.length > 0
},
{
label: __('Seleziona azienda', 'gepafin'),
items: companyItems,
enable: true
enable: companies.length
},
{
label: __('Aggiungi Azienda', 'gepafin'),
command: () => {
navigate('/agguingi-azienda')
},
enable: !intersection(permissions, ['MANAGE_TENDERS']).length
},
{
separator: true,