diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala index 44cc9e2..a3b00af 100644 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala @@ -76,9 +76,7 @@ .apply ) .collectSignal[Page.UpravDukazKriteria]( - connectors - .UpravDukazKriteriaPageConnector(state)(_) - .apply + pages.detail.UpravDukaz.Connector(state)(_).apply ) .collectStatic(Page.Dashboard)( connectors.DashboardPageConnector(state.actionBus).apply diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala index 44cc9e2..a3b00af 100644 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala @@ -76,9 +76,7 @@ .apply ) .collectSignal[Page.UpravDukazKriteria]( - connectors - .UpravDukazKriteriaPageConnector(state)(_) - .apply + pages.detail.UpravDukaz.Connector(state)(_).apply ) .collectStatic(Page.Dashboard)( connectors.DashboardPageConnector(state.actionBus).apply diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala deleted file mode 100644 index a41d0d1..0000000 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala +++ /dev/null @@ -1,66 +0,0 @@ -package cz.e_bs.cmi.mdr.pdb.app -package connectors - -import com.raquo.laminar.api.L.{*, given} -import cz.e_bs.cmi.mdr.pdb.Parameter -import cz.e_bs.cmi.mdr.pdb.UserInfo -import cz.e_bs.cmi.mdr.pdb.app.pages.detail.DetailParametruPage -import pages.detail.DetailKriteriaPage -import pages.detail.UpravDukazKriteriaPage -import com.raquo.waypoint.Router -import cz.e_bs.cmi.mdr.pdb.app.components.AppPage -import cz.e_bs.cmi.mdr.pdb.ParameterCriteria - -// TODO: extract common pieces for all detail kriteria pages -object UpravDukazKriteriaPageConnector { - trait AppState { - def details: EventStream[UserInfo] - def parameters: EventStream[List[Parameter]] - def actionBus: Observer[Action] - } -} - -case class UpravDukazKriteriaPageConnector( - state: UpravDukazKriteriaPageConnector.AppState -)( - $page: Signal[Page.UpravDukazKriteria] -)(using Router[Page]): - val $paramChangeSignal = - $page.splitOne(p => - (p.osobniCislo.value, p.parametr.value, p.kriterium.value) - )((x, _, _) => x) - val $pageChangeSignal = - $paramChangeSignal.map( - FetchParameterCriteria(_, _, _, Page.UpravDukazKriteria(_, _, _)) - ) - - val $data = state.details.startWithNone - val $params = state.parameters.startWithNone - - val $merged = - $data.combineWithFn($params, $paramChangeSignal)((d, p, pc) => - for { - da <- d - pa <- p - pb <- pa.find(_.id == pc._2) - ka <- pb.criteria.find(_.id == pc._3) - } yield (da, pb, ka) - ) - - def apply: HtmlElement = - AppPage(state.actionBus)( - $merged.map(_.map(buildModel)) - .split(_ => ())((_, _, $s) => UpravDukazKriteriaPage($s)), - $pageChangeSignal --> state.actionBus - ) - - private def buildModel( - o: UserInfo, - p: Parameter, - k: ParameterCriteria - ): UpravDukazKriteriaPage.ViewModel = - UpravDukazKriteriaPage.ViewModel( - o.toDetailOsoby, - p.toParametr(_ => a()), - k.toKriterium(_ => a()) - ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala index 44cc9e2..a3b00af 100644 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala @@ -76,9 +76,7 @@ .apply ) .collectSignal[Page.UpravDukazKriteria]( - connectors - .UpravDukazKriteriaPageConnector(state)(_) - .apply + pages.detail.UpravDukaz.Connector(state)(_).apply ) .collectStatic(Page.Dashboard)( connectors.DashboardPageConnector(state.actionBus).apply diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala deleted file mode 100644 index a41d0d1..0000000 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala +++ /dev/null @@ -1,66 +0,0 @@ -package cz.e_bs.cmi.mdr.pdb.app -package connectors - -import com.raquo.laminar.api.L.{*, given} -import cz.e_bs.cmi.mdr.pdb.Parameter -import cz.e_bs.cmi.mdr.pdb.UserInfo -import cz.e_bs.cmi.mdr.pdb.app.pages.detail.DetailParametruPage -import pages.detail.DetailKriteriaPage -import pages.detail.UpravDukazKriteriaPage -import com.raquo.waypoint.Router -import cz.e_bs.cmi.mdr.pdb.app.components.AppPage -import cz.e_bs.cmi.mdr.pdb.ParameterCriteria - -// TODO: extract common pieces for all detail kriteria pages -object UpravDukazKriteriaPageConnector { - trait AppState { - def details: EventStream[UserInfo] - def parameters: EventStream[List[Parameter]] - def actionBus: Observer[Action] - } -} - -case class UpravDukazKriteriaPageConnector( - state: UpravDukazKriteriaPageConnector.AppState -)( - $page: Signal[Page.UpravDukazKriteria] -)(using Router[Page]): - val $paramChangeSignal = - $page.splitOne(p => - (p.osobniCislo.value, p.parametr.value, p.kriterium.value) - )((x, _, _) => x) - val $pageChangeSignal = - $paramChangeSignal.map( - FetchParameterCriteria(_, _, _, Page.UpravDukazKriteria(_, _, _)) - ) - - val $data = state.details.startWithNone - val $params = state.parameters.startWithNone - - val $merged = - $data.combineWithFn($params, $paramChangeSignal)((d, p, pc) => - for { - da <- d - pa <- p - pb <- pa.find(_.id == pc._2) - ka <- pb.criteria.find(_.id == pc._3) - } yield (da, pb, ka) - ) - - def apply: HtmlElement = - AppPage(state.actionBus)( - $merged.map(_.map(buildModel)) - .split(_ => ())((_, _, $s) => UpravDukazKriteriaPage($s)), - $pageChangeSignal --> state.actionBus - ) - - private def buildModel( - o: UserInfo, - p: Parameter, - k: ParameterCriteria - ): UpravDukazKriteriaPage.ViewModel = - UpravDukazKriteriaPage.ViewModel( - o.toDetailOsoby, - p.toParametr(_ => a()), - k.toKriterium(_ => a()) - ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala new file mode 100644 index 0000000..86c6692 --- /dev/null +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala @@ -0,0 +1,90 @@ +package cz.e_bs.cmi.mdr.pdb +package app +package pages.detail + +import com.raquo.laminar.api.L.{*, given} +import com.raquo.waypoint.Router +import cz.e_bs.cmi.mdr.pdb.app.components.AppPage + +object UpravDukaz: + + type ThisPage = Page.UpravDukazKriteria + type PageKey = (OsobniCislo, String, String) + + trait State { + def details: EventStream[UserInfo] + def parameters: EventStream[List[Parameter]] + def actionBus: Observer[Action] + } + + def keyOfPage(page: ThisPage): PageKey = + (page.osobniCislo.value, page.parametr.value, page.kriterium.value) + + def onChangeAction(key: PageKey): Action = + FetchParameterCriteria( + key._1, + key._2, + key._3, + Page.UpravDukazKriteria(_, _, _) + ) + + class Connector(state: State)($page: Signal[ThisPage])(using Router[Page]): + val $paramChangeSignal = $page.splitOne(keyOfPage)((x, _, _) => x) + val $pageChangeSignal = $paramChangeSignal.map(onChangeAction) + + val $data = state.details.startWithNone + val $params = state.parameters.startWithNone + + val $merged = + $data.combineWithFn($params, $paramChangeSignal)((d, p, pc) => + for { + da <- d + pa <- p + pb <- pa.find(_.id == pc._2) + ka <- pb.criteria.find(_.id == pc._3) + } yield (da, pb, ka) + ) + + def apply: HtmlElement = + AppPage(state.actionBus)( + $merged.map(_.map(buildModel)) + .split(_ => ())((_, _, $s) => PageComponent($s)), + $pageChangeSignal --> state.actionBus + ) + + private def buildModel( + o: UserInfo, + p: Parameter, + k: ParameterCriteria + ): PageComponent.ViewModel = + import connectors.* + PageComponent.ViewModel( + o.toDetailOsoby, + p.toParametr(_ => a()), + k.toKriterium(_ => a()) + ) + + object PageComponent: + import components.* + + case class ViewModel( + osoba: DetailOsoby.ViewModel, + parametr: DetailParametru.ViewModel, + kriterium: DetailKriteria.ViewModel + ) + + def apply($m: Signal[ViewModel]): HtmlElement = + div( + cls := "max-w-7xl mx-auto px-4 py-6 sm:px-6 lg:px-8", + div( + cls := "flex flex-col space-y-4", + div( + DetailOsoby.header($m.map(_.osoba)), + DetailParametru.header($m.map(_.parametr)).amend(cls := "mt-2") + ), + div( + DetailKriteria($m.map(_.kriterium)), + UpravDukazForm() + ) + ) + ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala index 44cc9e2..a3b00af 100644 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala @@ -76,9 +76,7 @@ .apply ) .collectSignal[Page.UpravDukazKriteria]( - connectors - .UpravDukazKriteriaPageConnector(state)(_) - .apply + pages.detail.UpravDukaz.Connector(state)(_).apply ) .collectStatic(Page.Dashboard)( connectors.DashboardPageConnector(state.actionBus).apply diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala deleted file mode 100644 index a41d0d1..0000000 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala +++ /dev/null @@ -1,66 +0,0 @@ -package cz.e_bs.cmi.mdr.pdb.app -package connectors - -import com.raquo.laminar.api.L.{*, given} -import cz.e_bs.cmi.mdr.pdb.Parameter -import cz.e_bs.cmi.mdr.pdb.UserInfo -import cz.e_bs.cmi.mdr.pdb.app.pages.detail.DetailParametruPage -import pages.detail.DetailKriteriaPage -import pages.detail.UpravDukazKriteriaPage -import com.raquo.waypoint.Router -import cz.e_bs.cmi.mdr.pdb.app.components.AppPage -import cz.e_bs.cmi.mdr.pdb.ParameterCriteria - -// TODO: extract common pieces for all detail kriteria pages -object UpravDukazKriteriaPageConnector { - trait AppState { - def details: EventStream[UserInfo] - def parameters: EventStream[List[Parameter]] - def actionBus: Observer[Action] - } -} - -case class UpravDukazKriteriaPageConnector( - state: UpravDukazKriteriaPageConnector.AppState -)( - $page: Signal[Page.UpravDukazKriteria] -)(using Router[Page]): - val $paramChangeSignal = - $page.splitOne(p => - (p.osobniCislo.value, p.parametr.value, p.kriterium.value) - )((x, _, _) => x) - val $pageChangeSignal = - $paramChangeSignal.map( - FetchParameterCriteria(_, _, _, Page.UpravDukazKriteria(_, _, _)) - ) - - val $data = state.details.startWithNone - val $params = state.parameters.startWithNone - - val $merged = - $data.combineWithFn($params, $paramChangeSignal)((d, p, pc) => - for { - da <- d - pa <- p - pb <- pa.find(_.id == pc._2) - ka <- pb.criteria.find(_.id == pc._3) - } yield (da, pb, ka) - ) - - def apply: HtmlElement = - AppPage(state.actionBus)( - $merged.map(_.map(buildModel)) - .split(_ => ())((_, _, $s) => UpravDukazKriteriaPage($s)), - $pageChangeSignal --> state.actionBus - ) - - private def buildModel( - o: UserInfo, - p: Parameter, - k: ParameterCriteria - ): UpravDukazKriteriaPage.ViewModel = - UpravDukazKriteriaPage.ViewModel( - o.toDetailOsoby, - p.toParametr(_ => a()), - k.toKriterium(_ => a()) - ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala new file mode 100644 index 0000000..86c6692 --- /dev/null +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala @@ -0,0 +1,90 @@ +package cz.e_bs.cmi.mdr.pdb +package app +package pages.detail + +import com.raquo.laminar.api.L.{*, given} +import com.raquo.waypoint.Router +import cz.e_bs.cmi.mdr.pdb.app.components.AppPage + +object UpravDukaz: + + type ThisPage = Page.UpravDukazKriteria + type PageKey = (OsobniCislo, String, String) + + trait State { + def details: EventStream[UserInfo] + def parameters: EventStream[List[Parameter]] + def actionBus: Observer[Action] + } + + def keyOfPage(page: ThisPage): PageKey = + (page.osobniCislo.value, page.parametr.value, page.kriterium.value) + + def onChangeAction(key: PageKey): Action = + FetchParameterCriteria( + key._1, + key._2, + key._3, + Page.UpravDukazKriteria(_, _, _) + ) + + class Connector(state: State)($page: Signal[ThisPage])(using Router[Page]): + val $paramChangeSignal = $page.splitOne(keyOfPage)((x, _, _) => x) + val $pageChangeSignal = $paramChangeSignal.map(onChangeAction) + + val $data = state.details.startWithNone + val $params = state.parameters.startWithNone + + val $merged = + $data.combineWithFn($params, $paramChangeSignal)((d, p, pc) => + for { + da <- d + pa <- p + pb <- pa.find(_.id == pc._2) + ka <- pb.criteria.find(_.id == pc._3) + } yield (da, pb, ka) + ) + + def apply: HtmlElement = + AppPage(state.actionBus)( + $merged.map(_.map(buildModel)) + .split(_ => ())((_, _, $s) => PageComponent($s)), + $pageChangeSignal --> state.actionBus + ) + + private def buildModel( + o: UserInfo, + p: Parameter, + k: ParameterCriteria + ): PageComponent.ViewModel = + import connectors.* + PageComponent.ViewModel( + o.toDetailOsoby, + p.toParametr(_ => a()), + k.toKriterium(_ => a()) + ) + + object PageComponent: + import components.* + + case class ViewModel( + osoba: DetailOsoby.ViewModel, + parametr: DetailParametru.ViewModel, + kriterium: DetailKriteria.ViewModel + ) + + def apply($m: Signal[ViewModel]): HtmlElement = + div( + cls := "max-w-7xl mx-auto px-4 py-6 sm:px-6 lg:px-8", + div( + cls := "flex flex-col space-y-4", + div( + DetailOsoby.header($m.map(_.osoba)), + DetailParametru.header($m.map(_.parametr)).amend(cls := "mt-2") + ), + div( + DetailKriteria($m.map(_.kriterium)), + UpravDukazForm() + ) + ) + ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukazKriteriaPage.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukazKriteriaPage.scala deleted file mode 100644 index 9a1a07f..0000000 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukazKriteriaPage.scala +++ /dev/null @@ -1,29 +0,0 @@ -package cz.e_bs.cmi.mdr.pdb.app.pages.detail - -import com.raquo.laminar.api.L.{*, given} - -import components.* - -object UpravDukazKriteriaPage: - - case class ViewModel( - osoba: DetailOsoby.ViewModel, - parametr: DetailParametru.ViewModel, - kriterium: DetailKriteria.ViewModel - ) - - def apply($m: Signal[ViewModel]): HtmlElement = - div( - cls := "max-w-7xl mx-auto px-4 py-6 sm:px-6 lg:px-8", - div( - cls := "flex flex-col space-y-4", - div( - DetailOsoby.header($m.map(_.osoba)), - DetailParametru.header($m.map(_.parametr)).amend(cls := "mt-2") - ), - div( - DetailKriteria($m.map(_.kriterium)), - UpravDukazForm() - ) - ) - ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala index 44cc9e2..a3b00af 100644 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/Main.scala @@ -76,9 +76,7 @@ .apply ) .collectSignal[Page.UpravDukazKriteria]( - connectors - .UpravDukazKriteriaPageConnector(state)(_) - .apply + pages.detail.UpravDukaz.Connector(state)(_).apply ) .collectStatic(Page.Dashboard)( connectors.DashboardPageConnector(state.actionBus).apply diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala deleted file mode 100644 index a41d0d1..0000000 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/connectors/UpravDukazKriteriaPageConnector.scala +++ /dev/null @@ -1,66 +0,0 @@ -package cz.e_bs.cmi.mdr.pdb.app -package connectors - -import com.raquo.laminar.api.L.{*, given} -import cz.e_bs.cmi.mdr.pdb.Parameter -import cz.e_bs.cmi.mdr.pdb.UserInfo -import cz.e_bs.cmi.mdr.pdb.app.pages.detail.DetailParametruPage -import pages.detail.DetailKriteriaPage -import pages.detail.UpravDukazKriteriaPage -import com.raquo.waypoint.Router -import cz.e_bs.cmi.mdr.pdb.app.components.AppPage -import cz.e_bs.cmi.mdr.pdb.ParameterCriteria - -// TODO: extract common pieces for all detail kriteria pages -object UpravDukazKriteriaPageConnector { - trait AppState { - def details: EventStream[UserInfo] - def parameters: EventStream[List[Parameter]] - def actionBus: Observer[Action] - } -} - -case class UpravDukazKriteriaPageConnector( - state: UpravDukazKriteriaPageConnector.AppState -)( - $page: Signal[Page.UpravDukazKriteria] -)(using Router[Page]): - val $paramChangeSignal = - $page.splitOne(p => - (p.osobniCislo.value, p.parametr.value, p.kriterium.value) - )((x, _, _) => x) - val $pageChangeSignal = - $paramChangeSignal.map( - FetchParameterCriteria(_, _, _, Page.UpravDukazKriteria(_, _, _)) - ) - - val $data = state.details.startWithNone - val $params = state.parameters.startWithNone - - val $merged = - $data.combineWithFn($params, $paramChangeSignal)((d, p, pc) => - for { - da <- d - pa <- p - pb <- pa.find(_.id == pc._2) - ka <- pb.criteria.find(_.id == pc._3) - } yield (da, pb, ka) - ) - - def apply: HtmlElement = - AppPage(state.actionBus)( - $merged.map(_.map(buildModel)) - .split(_ => ())((_, _, $s) => UpravDukazKriteriaPage($s)), - $pageChangeSignal --> state.actionBus - ) - - private def buildModel( - o: UserInfo, - p: Parameter, - k: ParameterCriteria - ): UpravDukazKriteriaPage.ViewModel = - UpravDukazKriteriaPage.ViewModel( - o.toDetailOsoby, - p.toParametr(_ => a()), - k.toKriterium(_ => a()) - ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala new file mode 100644 index 0000000..86c6692 --- /dev/null +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukaz.scala @@ -0,0 +1,90 @@ +package cz.e_bs.cmi.mdr.pdb +package app +package pages.detail + +import com.raquo.laminar.api.L.{*, given} +import com.raquo.waypoint.Router +import cz.e_bs.cmi.mdr.pdb.app.components.AppPage + +object UpravDukaz: + + type ThisPage = Page.UpravDukazKriteria + type PageKey = (OsobniCislo, String, String) + + trait State { + def details: EventStream[UserInfo] + def parameters: EventStream[List[Parameter]] + def actionBus: Observer[Action] + } + + def keyOfPage(page: ThisPage): PageKey = + (page.osobniCislo.value, page.parametr.value, page.kriterium.value) + + def onChangeAction(key: PageKey): Action = + FetchParameterCriteria( + key._1, + key._2, + key._3, + Page.UpravDukazKriteria(_, _, _) + ) + + class Connector(state: State)($page: Signal[ThisPage])(using Router[Page]): + val $paramChangeSignal = $page.splitOne(keyOfPage)((x, _, _) => x) + val $pageChangeSignal = $paramChangeSignal.map(onChangeAction) + + val $data = state.details.startWithNone + val $params = state.parameters.startWithNone + + val $merged = + $data.combineWithFn($params, $paramChangeSignal)((d, p, pc) => + for { + da <- d + pa <- p + pb <- pa.find(_.id == pc._2) + ka <- pb.criteria.find(_.id == pc._3) + } yield (da, pb, ka) + ) + + def apply: HtmlElement = + AppPage(state.actionBus)( + $merged.map(_.map(buildModel)) + .split(_ => ())((_, _, $s) => PageComponent($s)), + $pageChangeSignal --> state.actionBus + ) + + private def buildModel( + o: UserInfo, + p: Parameter, + k: ParameterCriteria + ): PageComponent.ViewModel = + import connectors.* + PageComponent.ViewModel( + o.toDetailOsoby, + p.toParametr(_ => a()), + k.toKriterium(_ => a()) + ) + + object PageComponent: + import components.* + + case class ViewModel( + osoba: DetailOsoby.ViewModel, + parametr: DetailParametru.ViewModel, + kriterium: DetailKriteria.ViewModel + ) + + def apply($m: Signal[ViewModel]): HtmlElement = + div( + cls := "max-w-7xl mx-auto px-4 py-6 sm:px-6 lg:px-8", + div( + cls := "flex flex-col space-y-4", + div( + DetailOsoby.header($m.map(_.osoba)), + DetailParametru.header($m.map(_.parametr)).amend(cls := "mt-2") + ), + div( + DetailKriteria($m.map(_.kriterium)), + UpravDukazForm() + ) + ) + ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukazKriteriaPage.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukazKriteriaPage.scala deleted file mode 100644 index 9a1a07f..0000000 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/pages/detail/UpravDukazKriteriaPage.scala +++ /dev/null @@ -1,29 +0,0 @@ -package cz.e_bs.cmi.mdr.pdb.app.pages.detail - -import com.raquo.laminar.api.L.{*, given} - -import components.* - -object UpravDukazKriteriaPage: - - case class ViewModel( - osoba: DetailOsoby.ViewModel, - parametr: DetailParametru.ViewModel, - kriterium: DetailKriteria.ViewModel - ) - - def apply($m: Signal[ViewModel]): HtmlElement = - div( - cls := "max-w-7xl mx-auto px-4 py-6 sm:px-6 lg:px-8", - div( - cls := "flex flex-col space-y-4", - div( - DetailOsoby.header($m.map(_.osoba)), - DetailParametru.header($m.map(_.parametr)).amend(cls := "mt-2") - ), - div( - DetailKriteria($m.map(_.kriterium)), - UpravDukazForm() - ) - ) - ) diff --git a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/state/AppState.scala b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/state/AppState.scala index a9bf2af..98b5c58 100644 --- a/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/state/AppState.scala +++ b/app/src/main/scala/cz/e_bs/cmi/mdr/pdb/app/state/AppState.scala @@ -19,7 +19,7 @@ extends connectors.DetailPageConnector.AppState with connectors.DetailParametruPageConnector.AppState with connectors.DetailKriteriaPageConnector.AppState - with connectors.UpravDukazKriteriaPageConnector.AppState: + with pages.detail.UpravDukaz.State: def users: EventStream[List[UserInfo]] def details: EventStream[UserInfo] def parameters: EventStream[List[Parameter]]