in app/controllers/Admin.scala [78:109]
def desksAndSections(selectedDeskIdOption: Option[Long]) = (AuthAction andThen PermissionFilter).async { implicit request =>
for {
deskList <- getDesks()
sectionListFromDB <- getSortedSections()
sectionList <- getSectionMappings(selectedDeskIdOption, sectionListFromDB, deskList)
} yield {
val selectedDeskOption = for {
selectedDeskId <- selectedDeskIdOption
selectedDesk <- deskList.find((desk) => selectedDeskId == desk.id)
} yield selectedDesk
val desks = selectedDeskOption.map { selectedDesk =>
deskList.map { desk =>
if (desk.id == selectedDesk.id)
desk.copy(name = desk.name, selected = true)
else
desk
}
}.getOrElse(deskList)
Ok(
views.html.admin.desksAndSections(
Json.Null,
sectionList.sortBy(_.name),
addSectionForm,
desks.sortBy(_.name),
addDeskForm,
selectedDeskOption)
)
}
}