Skip to content

Commit

Permalink
KAAV-1473 hide esillaolo or lataukunta from add menu in certain phase…
Browse files Browse the repository at this point in the history
…s and project sizes
  • Loading branch information
henrihaapalasiili committed Jul 12, 2024
1 parent a86c041 commit 4bdfac7
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 10 deletions.
24 changes: 16 additions & 8 deletions src/components/ProjectTimeline/AddGroupModal.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,22 @@ const AddGroupModal = ({toggleOpenAddDialog,addDialogStyle,addDialogData,closeAd

return (
<div className={toggleOpenAddDialog === true ? "vis-add-dialog" : "vis-hide-dialog"} style={addDialogStyle}>
<Button size="small" disabled={!(addDialogData.showPresence && allowedToEdit)} className={addDialogData.showPresence && allowedToEdit ? '' : 'disabled'} variant="supplementary" onClick={() => addNew(addDialogData.nextEsillaolo)} iconLeft={<IconPlus />}>
{t('project.add-new-presence')}
</Button>
{addDialogData.esillaoloReason && <span className='add-button-info'>{addDialogData.esillaoloReason === "noconfirmation" ? "Kaavoitussihteerin tulee vahvistaa aikaisempi esilläolo, jonka jälkeen voidaan lisätä uusi." : "Esilläolojen maksimimäärä on saavutettu."}</span>}
<Button size="small" disabled={!(addDialogData.showBoard && isAdmin)} className={addDialogData.showBoard && isAdmin ? '' : 'disabled'} variant="supplementary" onClick={() => addNew(addDialogData.nextLautakunta)} iconLeft={<IconPlus />}>
{t('project.add-new-board')}
</Button>
{addDialogData.esillaoloReason && <span className='add-button-info'>{addDialogData.esillaoloReason === "noconfirmation" ? "Kaavoitussihteerin tulee vahvistaa aikaisempi lautakunta, jonka jälkeen voidaan lisätä uusi." : "Lautakuntien maksimimäärä on saavutettu."}</span>}
{!addDialogData.hidePresence &&
<>
<Button size="small" disabled={!(addDialogData.showPresence && allowedToEdit)} className={addDialogData.showPresence && allowedToEdit ? '' : 'disabled'} variant="supplementary" onClick={() => addNew(addDialogData.nextEsillaolo)} iconLeft={<IconPlus />}>
{t('project.add-new-presence')}
</Button>
{addDialogData.esillaoloReason && <span className='add-button-info'>{addDialogData.esillaoloReason === "noconfirmation" ? "Kaavoitussihteerin tulee vahvistaa aikaisempi esilläolo, jonka jälkeen voidaan lisätä uusi." : "Esilläolojen maksimimäärä on saavutettu."}</span>}
</>
}
{!addDialogData.hideBoard &&
<>
<Button size="small" disabled={!(addDialogData.showBoard && isAdmin)} className={addDialogData.showBoard && isAdmin ? '' : 'disabled'} variant="supplementary" onClick={() => addNew(addDialogData.nextLautakunta)} iconLeft={<IconPlus />}>
{t('project.add-new-board')}
</Button>
{addDialogData.esillaoloReason && <span className='add-button-info'>{addDialogData.esillaoloReason === "noconfirmation" ? "Kaavoitussihteerin tulee vahvistaa aikaisempi lautakunta, jonka jälkeen voidaan lisätä uusi." : "Lautakuntien maksimimäärä on saavutettu."}</span>}
</>
}
</div>
);
}
Expand Down
23 changes: 21 additions & 2 deletions src/components/ProjectTimeline/VisTimelineGroup.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const VisTimelineGroup = forwardRef(({ groups, items, deadlines, visValues, dead
const [timelineData, setTimelineData] = useState({group: false, content: false});
const [timeline, setTimeline] = useState(false);
const [addDialogStyle, setAddDialogStyle] = useState({ left: 0, top: 0 });
const [addDialogData, setAddDialogData] = useState({group:false,deadlineSections:false,showPresence:false,showBoard:false,nextEsillaolo:false,nextLautakunta:false,esillaoloReason:"",lautakuntaReason:""});
const [addDialogData, setAddDialogData] = useState({group:false,deadlineSections:false,showPresence:false,showBoard:false,nextEsillaolo:false,nextLautakunta:false,esillaoloReason:"",lautakuntaReason:"",hidePresence:false,hideBoard:false});
const [toggleOpenAddDialog, setToggleOpenAddDialog] = useState(false)
const [currentFormat, setCurrentFormat] = useState("showMonths");
const [openConfirmModal, setOpenConfirmModal] = useState(false);
Expand Down Expand Up @@ -115,6 +115,21 @@ const VisTimelineGroup = forwardRef(({ groups, items, deadlines, visValues, dead
return [canAddEsillaolo, nextEsillaoloClean, canAddLautakunta, nextLautakuntaClean, esillaoloReason, lautakuntaReason];
}

const hideSelection = (phase,data) => {
//hide add options for certain phases
if(phase === "Tarkistettu ehdotus"){
return [true,false]
}
else if(phase === "Ehdotus" && (data?.kaavaprosessin_kokoluokka === "XS" || data?.kaavaprosessin_kokoluokka === "S" || data?.kaavaprosessin_kokoluokka === "M")){
return [false,true]
}
else if(phase === "OAS"){
return [false,true]
}

return [false,false]
}

const canGroupBeAdded = (visValRef, data, deadlineSections) => {
// Find out how many groups in the clicked phase have been added to the timeline
const matchingGroups = groups.get().filter(group => data.nestedGroups.includes(group.id));
Expand Down Expand Up @@ -161,7 +176,11 @@ const VisTimelineGroup = forwardRef(({ groups, items, deadlines, visValues, dead
left: `${rect.left - 12}px`,
top: `${rect.bottom - 10}px`
})
setAddDialogData({group:data,deadlineSections:deadlineSections,showPresence:addEsillaolo,showBoard:addLautakunta,nextEsillaolo:nextEsillaolo,nextLautakunta:nextLautakunta,esillaoloReason:esillaoloReason,lautakuntaReason:lautakuntaReason})

const [hidePresence,hideBoard] = hideSelection(data.content,visValRef)
setAddDialogData({group:data,deadlineSections:deadlineSections,showPresence:addEsillaolo,showBoard:addLautakunta,
nextEsillaolo:nextEsillaolo,nextLautakunta:nextLautakunta,esillaoloReason:esillaoloReason,lautakuntaReason:lautakuntaReason,
hidePresence:hidePresence,hideBoard:hideBoard})
setToggleOpenAddDialog(prevState => !prevState)
}

Expand Down

0 comments on commit 4bdfac7

Please sign in to comment.