package sihl
The modular functional web framework
Install
Dune Dependency
Authors
Maintainers
Sources
sihl-queue-0.1.10.tbz
sha256=b264f357c2a65dbed00c3459be76cdd9b21275aeb9d0289634a2050161665211
sha512=b22fa96a3c7fa607df04848b40a0f54890f4f63c519d10ff7fcef8ccf09341731b42ff4decccb4a7e858e138a803c849ee0c5226c514938cdcded2fd80cae4cb
doc/src/sihl.database/view.ml.html
Source file view.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
module Repository = Sihl_repository module PartialCollection = struct type controls = { first : Ql.Page.t option ; previous : Ql.Page.t option ; next : Ql.Page.t option ; last : Ql.Page.t option } [@@deriving show, eq, fields, yojson] type 'a t = { member : 'a list ; total_items : int ; controls : controls } [@@deriving show, eq, fields, yojson] let controls_of_pagination page total_items = let limit = Ql.Page.get_limit page in let offset = Ql.Page.get_offset page in let limit = Option.value ~default:25 limit in let offset = Option.value ~default:0 offset in let first = if offset <= 0 then None else Some (Ql.Page.set_offset 0 page) in let previous = if offset - limit >= 0 then Some (Ql.Page.set_offset (offset - limit) page) else None in let next = if offset + limit < total_items then Some (Ql.Page.set_offset (offset + limit) page) else None in let last = if offset < total_items - limit then Some (Ql.Page.set_offset (total_items - 1) page) else None in { first; previous; next; last } ;; let create ~page ~meta items = let total_items = Repository.Meta.total meta in let controls = controls_of_pagination page total_items in { member = items; total_items; controls } ;; end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>