camper/deploy/order_services_carousel.sql
jordi fita mas 678b5cc523 Add user-defined order to campsite types, options, seasons and carousels
I use Sortable, exactly like HTMx’s sorting example does[0].  Had to
export the slug or ID of some entries to be able to add it in the hidden
input.

For forms that use ID instead of slug, had to use an input name other
than “id” because otherwise the swap would fail due to bug #1496[1].  It
is apparently fixed in a recent version of HTMx, but i did not want to
update for fear of behaviour changes.

[0]: https://htmx.org/examples/sortable/
[1]: https://github.com/bigskysoftware/htmx/issues/1496
2023-12-20 19:52:14 +01:00

25 lines
629 B
PL/PgSQL

-- Deploy camper:order_services_carousel to pg
-- requires: schema_camper
-- requires: roles
-- requires: services_carousel
begin;
set search_path to camper, public;
create or replace function order_services_carousel(positions integer[]) returns void as
$$
update services_carousel
set position = cast(temp.position as integer)
from unnest(positions) with ordinality as temp(media_id, position)
where services_carousel.media_id = temp.media_id
;
$$
language sql
;
revoke execute on function order_services_carousel(integer[]) from public;
grant execute on function order_services_carousel(integer[]) to admin;
commit;