Skip to content

Commit

Permalink
#18 [front] added storages table
Browse files Browse the repository at this point in the history
  • Loading branch information
vityaman committed Jan 19, 2024
1 parent bdbce1e commit 7059941
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ private class JdbcStorageRepository(xa: Transactor[Task])
location.name AS location_name
FROM storage
JOIN location ON storage.location_id = location.id
ORDER BY storage.name
"""
.query[DetailedStorageRow]
.stream
Expand Down
7 changes: 7 additions & 0 deletions frontend/src/main/scala/ru/vityaman/mylogistics/Api.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,11 @@ object API {
.get(s"${base}/transaction")
.map(xhr => read[List[Transaction]](xhr.responseText))
}

object Storage {
def getAll(): Future[List[StorageDetailed]] =
dom.ext.Ajax
.get(s"${base}/storage")
.map(xhr => read[List[StorageDetailed]](xhr.responseText))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ object MyLogistics {
case Success(list) => storage.transactions.update(_ => list)
}

API.Storage.getAll().onComplete {
case Failure(exception) => ???
case Success(list) => storage.storages.update(_ => list)
}

render(dom.document.querySelector("#root"), Window(storage))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ import com.raquo.laminar.api.L._

class AppStorage(
val users: Var[List[User]] = Var(List[User]()),
val transactions: Var[List[Transaction]] = Var(List[Transaction]())
val transactions: Var[List[Transaction]] = Var(List[Transaction]()),
val storages: Var[List[StorageDetailed]] = Var(List[StorageDetailed]())
) {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package ru.vityaman.mylogistics.model

import upickle.default._

final case class StorageDetailed(
id: Int,
name: String,
locationName: String
)

object StorageDetailed {
implicit val rw: ReadWriter[StorageDetailed] = macroRW[StorageDetailed]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package ru.vityaman.mylogistics.view

import ru.vityaman.mylogistics.model.StorageDetailed

import com.raquo.laminar.api.L._

import com.raquo.airstream.core.Signal

object StorageList {
def apply(storages: Signal[List[StorageDetailed]]): HtmlElement =
Table(
Seq("Id", "Name", "Location"),
tbody(children <-- storages.split(_.id)(render))
)

private def render(
id: Int,
initial: StorageDetailed,
signal: Signal[StorageDetailed]
) =
tr(
padding := "0%",
margin := "0%",
td(child.text <-- signal.map(_.id)),
td(child.text <-- signal.map(_.name)),
td(child.text <-- signal.map(_.locationName))
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ object Window {
h2("Users"),
div(UserList(storage.users.signal))
),
div(
h2("Storages"),
div(StorageList(storage.storages.signal))
),
div(
h2("Transactions"),
div(TransactionList(storage.transactions.signal))
Expand Down

0 comments on commit 7059941

Please sign in to comment.