Add home’s cover carousel
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.
2024-01-16 20:05:52 +00:00
|
|
|
-- Test order_cover_carousel
|
|
|
|
set client_min_messages to warning;
|
|
|
|
create extension if not exists pgtap;
|
|
|
|
reset client_min_messages;
|
|
|
|
|
|
|
|
begin;
|
|
|
|
|
|
|
|
select plan(11);
|
|
|
|
|
|
|
|
set search_path to camper, public;
|
|
|
|
|
|
|
|
select has_function('camper', 'order_cover_carousel', array['integer[]']);
|
|
|
|
select function_lang_is('camper', 'order_cover_carousel', array['integer[]'], 'sql');
|
|
|
|
select function_returns('camper', 'order_cover_carousel', array['integer[]'], 'void');
|
|
|
|
select isnt_definer('camper', 'order_cover_carousel', array['integer[]']);
|
|
|
|
select volatility_is('camper', 'order_cover_carousel', array['integer[]'], 'volatile');
|
|
|
|
select function_privs_are('camper', 'order_cover_carousel', array ['integer[]'], 'guest', array[]::text[]);
|
|
|
|
select function_privs_are('camper', 'order_cover_carousel', array ['integer[]'], 'employee', array[]::text[]);
|
|
|
|
select function_privs_are('camper', 'order_cover_carousel', array ['integer[]'], 'admin', array['EXECUTE']);
|
|
|
|
select function_privs_are('camper', 'order_cover_carousel', array ['integer[]'], 'authenticator', array[]::text[]);
|
|
|
|
|
|
|
|
|
|
|
|
set client_min_messages to warning;
|
|
|
|
truncate cover_carousel_i18n cascade;
|
|
|
|
truncate cover_carousel cascade;
|
|
|
|
truncate media cascade;
|
|
|
|
truncate media_content cascade;
|
|
|
|
truncate company cascade;
|
|
|
|
reset client_min_messages;
|
|
|
|
|
2024-02-27 18:45:47 +00:00
|
|
|
insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, rtc_number, tourist_tax, tourist_tax_max_days, country_code, currency_code, default_lang_tag)
|
|
|
|
values (1, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', '', 60, 7, 'ES', 'EUR', 'ca')
|
Add home’s cover carousel
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.
2024-01-16 20:05:52 +00:00
|
|
|
;
|
|
|
|
|
|
|
|
insert into media_content (media_type, bytes)
|
|
|
|
values ('image/x-xpixmap', 'static char *s[]={"1 1 1 1","a c #ffffff","a"};')
|
|
|
|
, ('image/x-xpixmap', 'static char *s[]={"1 1 1 1","a c #ff00ff","a"};')
|
|
|
|
, ('image/x-xpixmap', 'static char *s[]={"1 1 1 1","a c #ffff00","a"};')
|
|
|
|
, ('text/plain', 'hello, world!')
|
|
|
|
, ('image/svg+xml', '<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"/>')
|
|
|
|
;
|
|
|
|
|
|
|
|
insert into media (media_id, company_id, original_filename, content_hash)
|
|
|
|
values (2, 1, 'cover2.xpm', sha256('static char *s[]={"1 1 1 1","a c #ffffff","a"};'))
|
|
|
|
, (3, 1, 'cover3.xpm', sha256('static char *s[]={"1 1 1 1","a c #ff00ff","a"};'))
|
|
|
|
, (4, 1, 'cover4.xpm', sha256('static char *s[]={"1 1 1 1","a c #ffff00","a"};'))
|
|
|
|
, (5, 1, 'text.txt', sha256('hello, world!'))
|
|
|
|
, (6, 1, 'image.svg', sha256('<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"/>'))
|
|
|
|
;
|
|
|
|
|
|
|
|
insert into cover_carousel (media_id, caption)
|
|
|
|
values (2, '1')
|
|
|
|
, (3, '2')
|
|
|
|
, (4, '3')
|
|
|
|
, (5, '4')
|
|
|
|
, (6, '5')
|
|
|
|
;
|
|
|
|
|
|
|
|
select lives_ok(
|
|
|
|
$$ select order_cover_carousel('{4,6,5,2,3}') $$,
|
|
|
|
'Should be able to sort cover slides using their ID'
|
|
|
|
);
|
|
|
|
|
|
|
|
select bag_eq(
|
|
|
|
$$ select media_id, position from cover_carousel $$,
|
|
|
|
$$ values (4, 1)
|
|
|
|
, (6, 2)
|
|
|
|
, (5, 3)
|
|
|
|
, (2, 4)
|
|
|
|
, (3, 5)
|
|
|
|
$$,
|
|
|
|
'Should have sorted all cover slides.'
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
select *
|
|
|
|
from finish();
|
|
|
|
|
|
|
|
rollback;
|