diff --git a/ui/src/services/files/File.scala b/ui/src/services/files/File.scala index 09f6c07..b936673 100644 --- a/ui/src/services/files/File.scala +++ b/ui/src/services/files/File.scala @@ -1,3 +1,5 @@ package works.iterative.services.files -case class File(url: String, name: String) +import java.time.Instant + +case class File(url: String, name: String, category: String, created: Instant) diff --git a/ui/src/services/files/File.scala b/ui/src/services/files/File.scala index 09f6c07..b936673 100644 --- a/ui/src/services/files/File.scala +++ b/ui/src/services/files/File.scala @@ -1,3 +1,5 @@ package works.iterative.services.files -case class File(url: String, name: String) +import java.time.Instant + +case class File(url: String, name: String, category: String, created: Instant) diff --git a/ui/src/services/files/components/tailwind/FileSelector.scala b/ui/src/services/files/components/tailwind/FileSelector.scala index b43e07a..48a7c8a 100644 --- a/ui/src/services/files/components/tailwind/FileSelector.scala +++ b/ui/src/services/files/components/tailwind/FileSelector.scala @@ -21,7 +21,7 @@ selectionUpdates.onNext(AvailableFilesRequested) div( cls( - "inline-block transform overflow-hidden rounded-lg bg-white text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:align-middle" + "inline-block transform overflow-hidden rounded-lg bg-white text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-7xl sm:align-middle" ), role("dialog"), customHtmlAttr("aria.modal", BooleanAsTrueFalseStringCodec)(true), diff --git a/ui/src/services/files/File.scala b/ui/src/services/files/File.scala index 09f6c07..b936673 100644 --- a/ui/src/services/files/File.scala +++ b/ui/src/services/files/File.scala @@ -1,3 +1,5 @@ package works.iterative.services.files -case class File(url: String, name: String) +import java.time.Instant + +case class File(url: String, name: String, category: String, created: Instant) diff --git a/ui/src/services/files/components/tailwind/FileSelector.scala b/ui/src/services/files/components/tailwind/FileSelector.scala index b43e07a..48a7c8a 100644 --- a/ui/src/services/files/components/tailwind/FileSelector.scala +++ b/ui/src/services/files/components/tailwind/FileSelector.scala @@ -21,7 +21,7 @@ selectionUpdates.onNext(AvailableFilesRequested) div( cls( - "inline-block transform overflow-hidden rounded-lg bg-white text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:align-middle" + "inline-block transform overflow-hidden rounded-lg bg-white text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-7xl sm:align-middle" ), role("dialog"), customHtmlAttr("aria.modal", BooleanAsTrueFalseStringCodec)(true), diff --git a/ui/src/services/files/components/tailwind/FileTable.scala b/ui/src/services/files/components/tailwind/FileTable.scala index 86e6d85..1d954f4 100644 --- a/ui/src/services/files/components/tailwind/FileTable.scala +++ b/ui/src/services/files/components/tailwind/FileTable.scala @@ -4,6 +4,10 @@ import com.raquo.laminar.api.L.{*, given} import com.raquo.domtypes.generic.codecs.StringAsIsCodec import works.iterative.ui.components.tailwind.Icons +import java.time.format.DateTimeFormatter +import java.time.format.FormatStyle +import java.time.ZoneId +import java.util.Locale def FileTable( files: Signal[List[File]], @@ -19,7 +23,9 @@ ) tr( th(baseM, span(cls("sr-only"), "Vybrat")), - th(baseM, textH, "Název"), + th(baseM, textH, "Soubor"), + th(baseM, textH, "Kategorie"), + th(baseM, textH, "Vytvořen"), th(baseM, cls("relative"), span(cls("sr-only"), "Otevřít")) ) @@ -28,6 +34,12 @@ idx: Int, selected: Boolean )(toggleSelection: Observer[Unit]): HtmlElement = + val dateTimeFormat = + DateTimeFormatter + .ofLocalizedDateTime(FormatStyle.SHORT) + // TODO: locale + // .withLocale(Locale("cs", "CZ")) + .withZone(ZoneId.of("CET")) val baseC = cls("px-6 py-4 whitespace-nowrap text-sm") tr( cls(if idx % 2 == 0 then "bg-gray-50" else "bg-white"), @@ -46,6 +58,18 @@ ), td( baseC, + cls("font-medium text-gray-600"), + f.category, + onClick.mapTo(()) --> toggleSelection + ), + td( + baseC, + cls("font-medium text-gray-600 text-right"), + dateTimeFormat.format(f.created), + onClick.mapTo(()) --> toggleSelection + ), + td( + baseC, cls("text-right font-medium"), a( href(f.url),