diff --git a/src/assets/scss/components/misc.scss b/src/assets/scss/components/misc.scss index 309e5ff..030a350 100644 --- a/src/assets/scss/components/misc.scss +++ b/src/assets/scss/components/misc.scss @@ -34,7 +34,11 @@ &.p-tag-secondary { background-color: var(--table-border-color); } - + + &.p-tag-tertiary { + background-color: var(--card-full-background-color-6); + } + .p-tag-value { color: var(--menuitem-active-color); } diff --git a/src/pages/BandoFormsEdit/components/BuilderElement/index.js b/src/pages/BandoFormsEdit/components/BuilderElement/index.js index 71c0324..83d22af 100644 --- a/src/pages/BandoFormsEdit/components/BuilderElement/index.js +++ b/src/pages/BandoFormsEdit/components/BuilderElement/index.js @@ -19,6 +19,8 @@ const BuilderElement = ({ id, name, label, index, bandoStatus }) => { const element = head(elements.filter(o => o.id === id)); const [isVariable, setIsVariable] = useState('secondary'); const [isFormula, setIsFormula] = useState('secondary'); + const [isRequestedAmount, setIsRequestedAmount] = useState(false); + const [isDelegation, setIsDelegation] = useState(false); const [{ handlerId }, drop] = useDrop({ accept: ItemTypes.FIELD, @@ -105,6 +107,8 @@ const BuilderElement = ({ id, name, label, index, bandoStatus }) => { useEffect(() => { const variable = head(element.settings.filter(o => o.name === 'variable')); const formula = head(element.settings.filter(o => o.name === 'formula')); + const isRequestedAmount = head(element.settings.filter(o => o.name === 'isRequestedAmount')); + const isDelegation = head(element.settings.filter(o => o.name === 'isDelegation')); if (variable && !isEmpty(variable.value)) { setIsVariable('warning'); @@ -113,6 +117,14 @@ const BuilderElement = ({ id, name, label, index, bandoStatus }) => { if (formula && !isEmpty(formula.value)) { setIsFormula('warning'); } + + if (isRequestedAmount && !isEmpty(isRequestedAmount.value) && isRequestedAmount.value) { + setIsRequestedAmount('tertiary'); + } + + if (isDelegation && !isEmpty(isDelegation.value) && isDelegation.value) { + setIsDelegation('tertiary'); + } }, [elements]); return ( @@ -128,6 +140,10 @@ const BuilderElement = ({ id, name, label, index, bandoStatus }) => { ? : null} {name === 'numberinput' ? : null} + {isRequestedAmount + ? : null} + {isDelegation + ? : null} diff --git a/src/pages/DashboardInstructorManager/components/InstructorManagerMieDomandeTable/index.js b/src/pages/DashboardInstructorManager/components/InstructorManagerMieDomandeTable/index.js index 537aefd..752347f 100644 --- a/src/pages/DashboardInstructorManager/components/InstructorManagerMieDomandeTable/index.js +++ b/src/pages/DashboardInstructorManager/components/InstructorManagerMieDomandeTable/index.js @@ -1,7 +1,7 @@ import React, { useState, useEffect} from 'react'; import { __ } from '@wordpress/i18n'; -import { is, uniq, isNil } from 'ramda'; -import { Link } from 'react-router-dom'; +import { is, uniq, isNil, head } from 'ramda'; +import { Link, useNavigate } from 'react-router-dom'; // api import AssignedApplicationService from '../../../../service/assigned-application-service'; @@ -22,10 +22,12 @@ import { Tag } from 'primereact/tag'; import translationStrings from '../../../../translationStringsForComponents'; import { useStore } from '../../../../store'; +import { klona } from 'klona'; const APP_HUB_ID = process.env.REACT_APP_HUB_ID; const InstructorManagerMieDomandeTable = ({ userId = null, statuses = [] }) => { + const navigate = useNavigate(); const [items, setItems] = useState(null); const [filters, setFilters] = useState(null); const [localAsyncRequest, setLocalAsyncRequest] = useState(false); @@ -136,13 +138,44 @@ const InstructorManagerMieDomandeTable = ({ userId = null, statuses = [] }) => { return ; }; + const handleInitiateEvaluation = (id) => { + setLocalAsyncRequest(true); + AssignedApplicationService.updateStatusAssignedApplication(id, getInitEvalCallback, errInitEvalCallbacks, [ + ['status', 'OPEN'] + ]) + } + + const getInitEvalCallback = (resp) => { + if (resp.status === 'SUCCESS') { + const evaluation = klona(head(getFormattedData([resp.data]))); + const newItems = items.map(o => o.id === evaluation.id ? evaluation : o); + setItems(newItems); + navigate(`/mie-domande/${evaluation.applicationId}`); + } + setLocalAsyncRequest(false); + } + + const errInitEvalCallbacks = (resp) => { + setLocalAsyncRequest(false); + } + const actionsBodyTemplate = (rowData) => { - const label = ['OPEN', 'SOCCORSO'].includes(rowData.status) && userData.id === rowData.userId - ? __('Valuta', 'gepafin') - : __('Mostra', 'gepafin'); - return -