This is a separate carousel from the one displayed at the bottom with location info; it is, i suppose, a carousel for the hero image. For the database, it works exactly as the home carousel, but on the front had to use AlpineJS instead of Slick because it needs to show a text popping up from the bottom when the slide is show, something i do not know how to do in Slick. It now makes no sense to have the carousel inside the “nature” section, because the heading is no longer in there, and moved it out into a new “hero” div. Since i now have two carousels in home, i had to add additional attributes to carousel.AdminHandler to know which URL to point to when POSTing, PUTting, or redirecting.
55 lines
1.2 KiB
PL/PgSQL
55 lines
1.2 KiB
PL/PgSQL
-- Deploy camper:cover_carousel to pg
|
|
-- requires: roles
|
|
-- requires: schema_camper
|
|
-- requires: company
|
|
-- requires: media
|
|
-- requires: user_profile
|
|
|
|
begin;
|
|
|
|
set search_path to camper, public;
|
|
|
|
create table cover_carousel (
|
|
media_id integer not null references media primary key,
|
|
caption text not null,
|
|
position integer not null default 2147483647
|
|
);
|
|
|
|
grant select on table cover_carousel to guest;
|
|
grant select on table cover_carousel to employee;
|
|
grant select, insert, update, delete on table cover_carousel to admin;
|
|
|
|
alter table cover_carousel enable row level security;
|
|
|
|
create policy guest_ok
|
|
on cover_carousel
|
|
for select
|
|
using (true)
|
|
;
|
|
|
|
create policy insert_to_company
|
|
on cover_carousel
|
|
for insert
|
|
with check (
|
|
exists (select 1 from media join user_profile using (company_id) where media.media_id = cover_carousel.media_id)
|
|
)
|
|
;
|
|
|
|
create policy update_company
|
|
on cover_carousel
|
|
for update
|
|
using (
|
|
exists (select 1 from media join user_profile using (company_id) where media.media_id = cover_carousel.media_id)
|
|
)
|
|
;
|
|
|
|
create policy delete_from_company
|
|
on cover_carousel
|
|
for delete
|
|
using (
|
|
exists (select 1 from media join user_profile using (company_id) where media.media_id = cover_carousel.media_id)
|
|
)
|
|
;
|
|
|
|
commit;
|