From afe77f22964b3963153e91d7430c77b4ecf163c6 Mon Sep 17 00:00:00 2001 From: jordi fita mas Date: Sun, 17 Sep 2023 03:42:16 +0200 Subject: [PATCH] Add the services page This page is more or less similar to home, in terms of database: it has a carousel and a list of items; in this case, the definition of campsite services. As i said early, when adding the home carousel, this carousel has its own relation and set of functions to manage slides. They are also duplicated in Go code, but i think i will need to refactor it later to a carousel package or something like that, because both relations have the exact same fields and types, so it makes no sense to have twice the same code. I already did it with the CSS and JavaScript code, mostly because it was easier to replace the `.surroundings div` selector with `.carousel`, and because that way i can have a single template that loads and initializes Slick. There is no UI to create or edit service definitions, although there are the SQL functions, because i have no more time now, and Oriol needs to check that the style is correct for that page. --- demo/demo.sql | 78 +++++ demo/services_carousel0.avif | Bin 0 -> 50982 bytes demo/services_carousel1.avif | Bin 0 -> 97886 bytes demo/services_carousel2.avif | Bin 0 -> 91957 bytes demo/services_carousel3.avif | Bin 0 -> 143030 bytes deploy/add_service.sql | 23 ++ deploy/add_services_carousel_slide.sql | 25 ++ deploy/available_icons.sql | 30 ++ deploy/edit_service.sql | 25 ++ deploy/icon.sql | 17 + deploy/remove_services_carousel_slide.sql | 22 ++ deploy/service.sql | 58 ++++ deploy/service_i18n.sql | 23 ++ deploy/services_carousel.sql | 53 +++ deploy/services_carousel_i18n.sql | 22 ++ deploy/translate_service.sql | 25 ++ deploy/translate_services_carousel_slide.sql | 23 ++ pkg/app/admin.go | 5 + pkg/app/public.go | 5 + pkg/services/admin.go | 64 ++++ pkg/services/carousel.go | 311 ++++++++++++++++++ pkg/services/l10n.go | 79 +++++ pkg/services/public.go | 96 ++++++ po/ca.po | 198 ++++++----- po/es.po | 198 ++++++----- revert/add_service.sql | 7 + revert/add_services_carousel_slide.sql | 7 + revert/available_icons.sql | 7 + revert/edit_service.sql | 7 + revert/icon.sql | 7 + revert/remove_services_carousel_slide.sql | 7 + revert/service.sql | 7 + revert/service_i18n.sql | 7 + revert/services_carousel.sql | 7 + revert/services_carousel_i18n.sql | 7 + revert/translate_service.sql | 7 + revert/translate_services_carousel_slide.sql | 7 + sqitch.plan | 12 + test/add_service.sql | 55 ++++ test/add_services_carousel_slide.sql | 77 +++++ test/edit_service.sql | 58 ++++ test/icon.sql | 30 ++ test/remove_services_carousel_slide.sql | 82 +++++ test/service.sql | 199 +++++++++++ test/service_i18n.sql | 49 +++ test/services_carousel.sql | 178 ++++++++++ test/services_carousel_i18n.sql | 44 +++ test/translate_service.sql | 69 ++++ test/translate_services_carousel_slide.sql | 78 +++++ verify/add_service.sql | 7 + verify/add_services_carousel_slide.sql | 7 + verify/available_icons.sql | 28 ++ verify/edit_service.sql | 7 + verify/icon.sql | 9 + verify/remove_services_carousel_slide.sql | 7 + verify/service.sql | 19 ++ verify/service_i18n.sql | 12 + verify/services_carousel.sql | 16 + verify/services_carousel_i18n.sql | 11 + verify/translate_service.sql | 7 + verify/translate_services_carousel_slide.sql | 7 + web/static/public.css | 136 ++++++-- web/templates/admin/layout.gohtml | 3 + .../admin/services/carousel/form.gohtml | 65 ++++ .../admin/services/carousel/l10n.gohtml | 36 ++ web/templates/admin/services/index.gohtml | 50 +++ web/templates/public/home.gohtml | 31 +- web/templates/public/layout.gohtml | 29 ++ web/templates/public/services.gohtml | 42 +++ 69 files changed, 2712 insertions(+), 212 deletions(-) create mode 100644 demo/services_carousel0.avif create mode 100644 demo/services_carousel1.avif create mode 100644 demo/services_carousel2.avif create mode 100644 demo/services_carousel3.avif create mode 100644 deploy/add_service.sql create mode 100644 deploy/add_services_carousel_slide.sql create mode 100644 deploy/available_icons.sql create mode 100644 deploy/edit_service.sql create mode 100644 deploy/icon.sql create mode 100644 deploy/remove_services_carousel_slide.sql create mode 100644 deploy/service.sql create mode 100644 deploy/service_i18n.sql create mode 100644 deploy/services_carousel.sql create mode 100644 deploy/services_carousel_i18n.sql create mode 100644 deploy/translate_service.sql create mode 100644 deploy/translate_services_carousel_slide.sql create mode 100644 pkg/services/admin.go create mode 100644 pkg/services/carousel.go create mode 100644 pkg/services/l10n.go create mode 100644 pkg/services/public.go create mode 100644 revert/add_service.sql create mode 100644 revert/add_services_carousel_slide.sql create mode 100644 revert/available_icons.sql create mode 100644 revert/edit_service.sql create mode 100644 revert/icon.sql create mode 100644 revert/remove_services_carousel_slide.sql create mode 100644 revert/service.sql create mode 100644 revert/service_i18n.sql create mode 100644 revert/services_carousel.sql create mode 100644 revert/services_carousel_i18n.sql create mode 100644 revert/translate_service.sql create mode 100644 revert/translate_services_carousel_slide.sql create mode 100644 test/add_service.sql create mode 100644 test/add_services_carousel_slide.sql create mode 100644 test/edit_service.sql create mode 100644 test/icon.sql create mode 100644 test/remove_services_carousel_slide.sql create mode 100644 test/service.sql create mode 100644 test/service_i18n.sql create mode 100644 test/services_carousel.sql create mode 100644 test/services_carousel_i18n.sql create mode 100644 test/translate_service.sql create mode 100644 test/translate_services_carousel_slide.sql create mode 100644 verify/add_service.sql create mode 100644 verify/add_services_carousel_slide.sql create mode 100644 verify/available_icons.sql create mode 100644 verify/edit_service.sql create mode 100644 verify/icon.sql create mode 100644 verify/remove_services_carousel_slide.sql create mode 100644 verify/service.sql create mode 100644 verify/service_i18n.sql create mode 100644 verify/services_carousel.sql create mode 100644 verify/services_carousel_i18n.sql create mode 100644 verify/translate_service.sql create mode 100644 verify/translate_services_carousel_slide.sql create mode 100644 web/templates/admin/services/carousel/form.gohtml create mode 100644 web/templates/admin/services/carousel/l10n.gohtml create mode 100644 web/templates/admin/services/index.gohtml create mode 100644 web/templates/public/services.gohtml diff --git a/demo/demo.sql b/demo/demo.sql index 39dd4ad..2cf9080 100644 --- a/demo/demo.sql +++ b/demo/demo.sql @@ -38,6 +38,10 @@ values (52, 'plots.avif', 'image/avif', decode('m4_esyscmd([[base64 -w0 demo/plo , (52, 'home_carousel6.jpg', 'image/jpeg', decode('m4_esyscmd([[base64 -w0 demo/home_carousel6.jpg]])', 'base64')) , (52, 'home_carousel7.jpg', 'image/jpeg', decode('m4_esyscmd([[base64 -w0 demo/home_carousel7.jpg]])', 'base64')) , (52, 'home_carousel8.jpg', 'image/jpeg', decode('m4_esyscmd([[base64 -w0 demo/home_carousel8.jpg]])', 'base64')) + , (52, 'services_carousel0.avif', 'image/avif', decode('m4_esyscmd([[base64 -w0 demo/services_carousel0.avif]])', 'base64')) + , (52, 'services_carousel1.avif', 'image/avif', decode('m4_esyscmd([[base64 -w0 demo/services_carousel1.avif]])', 'base64')) + , (52, 'services_carousel2.avif', 'image/avif', decode('m4_esyscmd([[base64 -w0 demo/services_carousel2.avif]])', 'base64')) + , (52, 'services_carousel3.avif', 'image/avif', decode('m4_esyscmd([[base64 -w0 demo/services_carousel3.avif]])', 'base64')) ; insert into home_carousel (media_id, caption) @@ -59,6 +63,25 @@ values (66, 'en', 'Santa Margarida volcano') , (67, 'es', 'Piletón oscuro Sadernes') ; +insert into services_carousel (media_id, caption) +values (75, 'La Garrotxa') + , (76, 'Tenda') + , (77, 'Parceŀles') + , (78, 'Hamaca') + , (63, 'Safari Tents') +; + +insert into services_carousel_i18n (media_id, lang_tag, caption) +values (76, 'en', 'Tent') + , (76, 'es', 'Tenda') + , (77, 'en', 'Plots') + , (77, 'es', 'Parcelas') + , (78, 'en', 'Hammock') + , (78, 'es', 'Amaca') + , (63, 'en', 'Safari Tents') + , (63, 'es', 'Tiendas Safari') +; + alter sequence campsite_type_campsite_type_id_seq restart with 72; insert into campsite_type (company_id, name, media_id, description) values (52, 'Parceŀles', 62, '') @@ -77,4 +100,59 @@ values (72, 'en', 'Plots', '') , (75, 'es', 'Cabañas de madera', '') ; +alter sequence service_service_id_seq restart with 82; +insert into service (company_id, icon_name, name, description) +values (52, 'information', 'Informació', '

A la recepció l’informarem del que pot fer des del càmping mateix o pels voltants.

') + , (52, 'wifi', 'WiFi', '

Un 80 % de l’àrea del càmping disposa d’accés WiFi lliure.

') + , (52, 'restaurant', 'Bar & Tapes', '

Oberts:

') + , (52, 'store', 'Botiga', '

Oberta a diari.

Venda de pa del dia per encàrrec.

') + , (52, 'wheelchair', 'Accessibilitat', '

Piscines i serveis del càmping adaptats a persones amb mobilitat reduïda.

') + , (52, 'toilet', 'Lavabos', '

Ubicació central i pràctica. Nets i ben mantinguts.

') + , (52, 'shower', 'Dutxa', '

Aigua calenta, sense fitxes.

') + , (52, 'baby', 'Bany per nadons', '

Bany individual per nadons, amb banyera i canviador.

') + , (52, 'pool', 'Piscina', '

Piscina per adults i piscina infantil.

(Piscines amb aigua salada.)

') + , (52, 'campfire', 'Barbacoa', '

Trobareu una barbacoa comunitària de carbó o la possibilitat de llogar una barbacoa de gas (no es pot fer servir llenya o carbó en les parcel·les).

') + , (52, 'rv', 'Estació servei per autocaravanes', '

Situada a l’entrada del càmping.

') + , (52, 'castle', 'Zona de jocs', '

Una zona central pels més menuts.

') + , (52, 'ball', 'Camp d’esport', '

Amb camp de futbol, voley, tenis-taula i espai per jugar.

') + , (52, 'puzzle', 'Sala de jocs i televisió', '

Una sala pels dies de mal temps.

') + , (52, 'washer', 'Rentadores i assecadores', '

Als safareigs del càmping hi ha dues rentadores i una assecadora que funcionen amb fitxes.

') + , (52, 'fridge', 'Lloguer de neveres', '

Possibilitat de llogar neveres per estades llargues amb Rent It.

') +; + +insert into service_i18n (service_id, lang_tag, name, description) +values (82, 'en', 'Information', '

At reception we will inform you of what you can do from the campsite itself or in the surrounding area.

') + , (82, 'es', 'Información', '

A recepción le informaremos de qué puede hacer en el camping o por los alrededores.

') + , (83, 'en', 'WiFi', '

80 % of the campsite area has free WiFi access.

') + , (83, 'es', 'WiFi', '

Un 80 % del área del camping dispone de acceso WiFi libre.

') + , (84, 'en', 'Bar & Tapas', '

Open:

') + , (84, 'es', 'Bar & Tapas', '

Abierto:

') + , (85, 'en', 'Shop', '

Open daily

Sale of daily bread to order.

') + , (85, 'es', 'Tienda', '

Abierta a diario.

Venta de pan del día por encargo.

') + , (86, 'en', 'Accessibility', '

Swimming pools and campsite services adapted to people with reduced mobility.

') + , (86, 'es', 'Acesibilidad', '

Piscinas y servicios del camping adaptados a personas con mobilidad reducida.

') + , (87, 'en', 'Toilets', '

Central and practical location. Clean and well maintained.

') + , (87, 'es', 'Lavabos', '

Ubicación central y práctica. Limpios y bien mantenidos.

') + , (88, 'en', 'Showers', '

Hot water, no tokens.

') + , (88, 'es', 'Duchas', '

Agua caliente, sin fichas.

') + , (89, 'en', 'Baby baths', '

Individual bathroom for babies, with bathtub and changing table.

') + , (89, 'es', 'Baño para bebés', '

Baños individuales para bebés, con bañera y cambiador.

') + , (90, 'en', 'Swimming pool', '

Adult pool and children’s pool.

(Salt water swimming pools.)

') + , (90, 'es', 'Piscina', '

Piscina para adultos y piscina infantil.

(Piscinas con agua salada.)

') + , (91, 'en', 'Barbecue', '

You will find a communal charcoal barbecue or the possibility of renting a gas barbecue (no wood or charcoal can be used on the plots).

') + , (91, 'es', 'Barbacoa', '

Encontraréis una barbacoa comunitaria de carbón o la posibilidad de alquilar una barbacoa de gas (no se puede utilizar leña o carbón en las parcelas).

') + , (92, 'en', 'RV service station', '

Located at the entrance of the campsite.

') + , (92, 'es', 'Estación servicio para autocaravanas', '

Situada en la entrada del camping.

') + , (93, 'en', 'Play area', '

A central area for the little ones.

') + , (93, 'es', 'Zona de juegos', '

Una zona central para los más pequeños.

') + , (94, 'en', 'Sports area', '

With football field, volleyball, table tennis and room to play.

') + , (94, 'es', 'Campo de deporte', '

Con campo de fútbol, voley, pimpón i espacio para jugar.

') + , (95, 'en', 'Games and television room', '

A room for bad weather days.

') + , (95, 'es', 'Sala de juegos y televisión', '

Una sala para los días de mal tiempo.

') + , (96, 'en', 'Washing machines and dryers', '

There are two token-operated washing machines and a dryer in the campsite’s laundry facilities.

') + , (96, 'es', 'Lavadora y secadoras', '

A los lavaderos del camping hay dos lavadoras y una secadora que funcionana con fichas.

') + , (97, 'en', 'Fridge rental', '

Possibility to rent refrigerators for long stays with Rent It.

') + , (97, 'es', 'Alquiler de neveras', '

Posibilidad de alquilar neveras para estancias largas con Rent It.

') +; + commit; diff --git a/demo/services_carousel0.avif b/demo/services_carousel0.avif new file mode 100644 index 0000000000000000000000000000000000000000..7e41e80a65d71d67290544d46e7d4d9813e626f4 GIT binary patch literal 50982 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 z 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

nI~cT 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

This is what, exactly?

Dunno

') $$, + 'Should be able to add a service to the first company' +); + +select lives_ok( + $$ select add_service(2, 'toilet', 'Is this Google?', '') $$, + 'Should be able to add a service to the second company' +); + +select bag_eq( + $$ select company_id, icon_name, name, description::text from service $$, + $$ values (1, 'information', 'Info', '

This is what, exactly?

Dunno

') + , (2, 'toilet', 'Is this Google?', '') + $$, + 'Should have added all two service' +); + + +select * +from finish(); + +rollback; diff --git a/test/add_services_carousel_slide.sql b/test/add_services_carousel_slide.sql new file mode 100644 index 0000000..f35cf94 --- /dev/null +++ b/test/add_services_carousel_slide.sql @@ -0,0 +1,77 @@ +-- Test add_services_carousel_slide +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(14); + +set search_path to camper, public; + +select has_function('camper', 'add_services_carousel_slide', array['integer', 'text']); +select function_lang_is('camper', 'add_services_carousel_slide', array['integer', 'text'], 'sql'); +select function_returns('camper', 'add_services_carousel_slide', array['integer', 'text'], 'void'); +select isnt_definer('camper', 'add_services_carousel_slide', array['integer', 'text']); +select volatility_is('camper', 'add_services_carousel_slide', array['integer', 'text'], 'volatile'); +select function_privs_are('camper', 'add_services_carousel_slide', array['integer', 'text'], 'guest', array[]::text[]); +select function_privs_are('camper', 'add_services_carousel_slide', array['integer', 'text'], 'employee', array[]::text[]); +select function_privs_are('camper', 'add_services_carousel_slide', array['integer', 'text'], 'admin', array['EXECUTE']); +select function_privs_are('camper', 'add_services_carousel_slide', array['integer', 'text'], 'authenticator', array[]::text[]); + + +set client_min_messages to warning; +truncate services_carousel_i18n cascade; +truncate services_carousel cascade; +truncate media cascade; +truncate company cascade; +reset client_min_messages; + +insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag) +values (1, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca') +; + +insert into media (media_id, company_id, original_filename, media_type, content) +values (5, 1, 'text.txt', 'text/plain', 'hello, world!') + , (6, 1, 'image.svg', 'image/svg+xml', '') + , (7, 1, 'cover4.xpm', 'image/x-xpixmap', 'static char *s[]={"1 1 1 1","a c #ffffff","a"};') +; + +insert into services_carousel (media_id, caption) +values (5, 'Previous caption') +; + +select lives_ok( + $$ select add_services_carousel_slide(6, 'A caption') $$, + 'Should be able to add a carousel slide with a caption' +); + +select lives_ok( + $$ select add_services_carousel_slide(7, null) $$, + 'Should be able to add a carousel slide without caption' +); + +select lives_ok( + $$ select add_services_carousel_slide(5, 'New caption') $$, + 'Should be able to overwrite a slide with a new caption' +); + +select bag_eq( + $$ select media_id, caption from services_carousel $$, + $$ values (5, 'New caption') + , (6, 'A caption') + , (7, '') + $$, + 'Should have all three slides' +); + +select is_empty( + $$ select * from services_carousel_i18n $$, + 'Should not have added any translation' +); + + +select * +from finish(); + +rollback; diff --git a/test/edit_service.sql b/test/edit_service.sql new file mode 100644 index 0000000..8d52d74 --- /dev/null +++ b/test/edit_service.sql @@ -0,0 +1,58 @@ +-- Test edit_service +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(12); + +set search_path to camper, public; + +select has_function('camper', 'edit_service', array['integer', 'text', 'text', 'text']); +select function_lang_is('camper', 'edit_service', array['integer', 'text', 'text', 'text'], 'sql'); +select function_returns('camper', 'edit_service', array['integer', 'text', 'text', 'text'], 'void'); +select isnt_definer('camper', 'edit_service', array['integer', 'text', 'text', 'text']); +select volatility_is('camper', 'edit_service', array['integer', 'text', 'text', 'text'], 'volatile'); +select function_privs_are('camper', 'edit_service', array ['integer', 'text', 'text', 'text'], 'guest', array[]::text[]); +select function_privs_are('camper', 'edit_service', array ['integer', 'text', 'text', 'text'], 'employee', array[]::text[]); +select function_privs_are('camper', 'edit_service', array ['integer', 'text', 'text', 'text'], 'admin', array['EXECUTE']); +select function_privs_are('camper', 'edit_service', array ['integer', 'text', 'text', 'text'], 'authenticator', array[]::text[]); + +set client_min_messages to warning; +truncate service cascade; +truncate company cascade; +reset client_min_messages; + + +insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag) +values (1, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca') +; + +insert into service (service_id, company_id, icon_name, name, description) +values (5, 1, 'information', 'Service A', '

A

') + , (6, 1, 'toilet', 'Service B', '

B

') +; + +select lives_ok( + $$ select edit_service(5, 'wifi', 'Service 1', '

1

') $$, + 'Should be able to edit the first service' +); + +select lives_ok( + $$ select edit_service(6, 'baby', 'Service 2', '

2

') $$, + 'Should be able to edit the second service' +); + +select bag_eq( + $$ select service_id, icon_name, name, description::text from service $$, + $$ values (5, 'wifi', 'Service 1', '

1

') + , (6, 'baby', 'Service 2', '

2

') + $$, + 'Should have updated all services.' +); + +select * +from finish(); + +rollback; diff --git a/test/icon.sql b/test/icon.sql new file mode 100644 index 0000000..0f2b0fc --- /dev/null +++ b/test/icon.sql @@ -0,0 +1,30 @@ +-- Test icon +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_table('icon'); +select has_pk('icon'); +select table_privs_are('icon', 'guest', array['SELECT']); +select table_privs_are('icon', 'employee', array['SELECT']); +select table_privs_are('icon', 'admin', array['SELECT']); +select table_privs_are('icon', 'authenticator', array[]::text[]); + +select has_column('icon', 'icon_name'); +select col_is_pk('icon', 'icon_name'); +select col_type_is('icon', 'icon_name', 'text'); +select col_not_null('icon', 'icon_name'); +select col_hasnt_default('icon', 'icon_name'); + + +select * +from finish(); + +rollback; + diff --git a/test/remove_services_carousel_slide.sql b/test/remove_services_carousel_slide.sql new file mode 100644 index 0000000..1c7b2f5 --- /dev/null +++ b/test/remove_services_carousel_slide.sql @@ -0,0 +1,82 @@ +-- Test remove_services_carousel_slide +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(12); + +set search_path to camper, public; + +select has_function('camper', 'remove_services_carousel_slide', array['integer']); +select function_lang_is('camper', 'remove_services_carousel_slide', array['integer'], 'sql'); +select function_returns('camper', 'remove_services_carousel_slide', array['integer'], 'void'); +select isnt_definer('camper', 'remove_services_carousel_slide', array['integer']); +select volatility_is('camper', 'remove_services_carousel_slide', array['integer'], 'volatile'); +select function_privs_are('camper', 'remove_services_carousel_slide', array['integer'], 'guest', array[]::text[]); +select function_privs_are('camper', 'remove_services_carousel_slide', array['integer'], 'employee', array[]::text[]); +select function_privs_are('camper', 'remove_services_carousel_slide', array['integer'], 'admin', array['EXECUTE']); +select function_privs_are('camper', 'remove_services_carousel_slide', array['integer'], 'authenticator', array[]::text[]); + + +set client_min_messages to warning; +truncate services_carousel_i18n cascade; +truncate services_carousel cascade; +truncate media cascade; +truncate company cascade; +reset client_min_messages; + +insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag) +values (1, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca') +; + +insert into media (media_id, company_id, original_filename, media_type, content) +values (5, 1, 'text.txt', 'text/plain', 'hello, world!') + , (6, 1, 'image.svg', 'image/svg+xml', '') + , (7, 1, 'cover4.xpm', 'image/x-xpixmap', 'static char *s[]={"1 1 1 1","a c #ffffff","a"};') +; + +insert into services_carousel (media_id, caption) +values (5, 'Source caption') + , (6, 'Another caption') + , (7, 'N/A') +; + +insert into services_carousel_i18n (media_id, lang_tag, caption) +values (5, 'en', 'Target caption') + , (5, 'es', 'Target caption (spanish)') + , (6, 'en', 'Target caption') + , (6, 'es', 'Target caption (spanish)') + , (7, 'en', 'Target caption') + , (7, 'es', 'Target caption (spanish)') +; + +select lives_ok( + $$ select remove_services_carousel_slide(6) $$, + 'Should be able to delete a slide' +); + +select bag_eq( + $$ select media_id, caption from services_carousel $$, + $$ values (5, 'Source caption') + , (7, 'N/A') + $$, + 'Should have removed the slide' +); + +select bag_eq( + $$ select media_id, lang_tag, caption from services_carousel_i18n $$, + $$ values (5, 'en', 'Target caption') + , (5, 'es', 'Target caption (spanish)') + , (7, 'en', 'Target caption') + , (7, 'es', 'Target caption (spanish)') + $$, + 'Should have removed the slide’s translations' +); + + +select * +from finish(); + +rollback; diff --git a/test/service.sql b/test/service.sql new file mode 100644 index 0000000..f109113 --- /dev/null +++ b/test/service.sql @@ -0,0 +1,199 @@ +-- Test service +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(51); + +set search_path to camper, public; + +select has_table('service'); +select has_pk('service'); +select table_privs_are('service', 'guest', array['SELECT']); +select table_privs_are('service', 'employee', array['SELECT']); +select table_privs_are('service', 'admin', array['SELECT', 'INSERT', 'UPDATE', 'DELETE']); +select table_privs_are('service', 'authenticator', array[]::text[]); + +select has_sequence('service_service_id_seq'); +select sequence_privs_are('service_service_id_seq', 'guest', array[]::text[]); +select sequence_privs_are('service_service_id_seq', 'employee', array[]::text[]); +select sequence_privs_are('service_service_id_seq', 'admin', array['USAGE']); +select sequence_privs_are('service_service_id_seq', 'authenticator', array[]::text[]); + +select has_column('service', 'service_id'); +select col_is_pk('service', 'service_id'); +select col_type_is('service', 'service_id', 'integer'); +select col_not_null('service', 'service_id'); +select col_has_default('service', 'service_id'); +select col_default_is('service', 'service_id', 'nextval(''service_service_id_seq''::regclass)'); + +select has_column('service', 'company_id'); +select col_is_fk('service', 'company_id'); +select fk_ok('service', 'company_id', 'company', 'company_id'); +select col_type_is('service', 'company_id', 'integer'); +select col_not_null('service', 'company_id'); +select col_hasnt_default('service', 'company_id'); + +select has_column('service', 'icon_name'); +select col_is_fk('service', 'icon_name'); +select fk_ok('service', 'icon_name', 'icon', 'icon_name'); +select col_type_is('service', 'icon_name', 'text'); +select col_not_null('service', 'icon_name'); +select col_hasnt_default('service', 'icon_name'); + +select has_column('service', 'name'); +select col_type_is('service', 'name', 'text'); +select col_not_null('service', 'name'); +select col_hasnt_default('service', 'name'); + +select has_column('service', 'description'); +select col_type_is('service', 'description', 'xml'); +select col_not_null('service', 'description'); +select col_hasnt_default('service', 'description'); + + +set client_min_messages to warning; +truncate service cascade; +truncate company_host cascade; +truncate company_user cascade; +truncate company cascade; +truncate auth."user" cascade; +reset client_min_messages; + +insert into auth."user" (user_id, email, name, password, cookie, cookie_expires_at) +values (1, 'demo@tandem.blog', 'Demo', 'test', '44facbb30d8a419dfd4bfbc44a4b5539d4970148dfc84bed0e', current_timestamp + interval '1 month') + , (5, 'admin@tandem.blog', 'Demo', 'test', '12af4c88b528c2ad4222e3740496ecbc58e76e26f087657524', current_timestamp + interval '1 month') +; + +insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag) +values (2, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca') + , (4, 'Company 4', 'XX234', '', '666-666-666', 'b@b', '', '', '', '', '', 'FR', 'USD', 'ca') +; + +insert into company_user (company_id, user_id, role) +values (2, 1, 'admin') + , (4, 5, 'admin') +; + +insert into company_host (company_id, host) +values (2, 'co2') + , (4, 'co4') +; + +insert into service (company_id, icon_name, name, description) +values (2, 'information', 'Information', '') + , (4, 'wifi', 'WiFi', '') +; + +prepare service_data as +select company_id, name +from service +order by company_id, name; + +set role guest; +select bag_eq( + 'service_data', + $$ values (2, 'Information') + , (4, 'WiFi') + $$, + 'Everyone should be able to list all services across all companies' +); +reset role; + +select set_cookie('44facbb30d8a419dfd4bfbc44a4b5539d4970148dfc84bed0e/demo@tandem.blog', 'co2'); + +select lives_ok( + $$ insert into service(company_id, icon_name, name, description) values (2, 'restaurant', 'Restaurant', '') $$, + 'Admin from company 2 should be able to insert a new services to that company.' +); + +select bag_eq( + 'service_data', + $$ values (2, 'Information') + , (2, 'Restaurant') + , (4, 'WiFi') + $$, + 'The new row should have been added' +); + +select lives_ok( + $$ update service set name = 'Bar' where company_id = 2 and name = 'Restaurant' $$, + 'Admin from company 2 should be able to update services of that company.' +); + +select bag_eq( + 'service_data', + $$ values (2, 'Information') + , (2, 'Bar') + , (4, 'WiFi') + $$, + 'The row should have been updated.' +); + +select lives_ok( + $$ delete from service where company_id = 2 and name = 'Bar' $$, + 'Admin from company 2 should be able to delete services from that company.' +); + +select bag_eq( + 'service_data', + $$ values (2, 'Information') + , (4, 'WiFi') + $$, + 'The row should have been deleted.' +); + +select throws_ok( + $$ insert into service (company_id, icon_name, name, description) values (4, 'store', 'Store', '') $$, + '42501', 'new row violates row-level security policy for table "service"', + 'Admin from company 2 should NOT be able to insert new services to company 4.' +); + +select lives_ok( + $$ update service set name = 'Nope' where company_id = 4 $$, + 'Admin from company 2 should not be able to update new services of company 4, but no error if company_id is not changed.' +); + +select bag_eq( + 'service_data', + $$ values (2, 'Information') + , (4, 'WiFi') + $$, + 'No row should have been changed.' +); + +select throws_ok( + $$ update service set company_id = 4 where company_id = 2 $$, + '42501', 'new row violates row-level security policy for table "service"', + 'Admin from company 2 should NOT be able to move services to company 4' +); + +select lives_ok( + $$ delete from service where company_id = 4 $$, + 'Admin from company 2 should NOT be able to delete services from company 4, but not error is thrown' +); + +select bag_eq( + 'service_data', + $$ values (2, 'Information') + , (4, 'WiFi') + $$, + 'No row should have been changed' +); + +select throws_ok( + $$ insert into service (company_id, icon_name, name, description) values (2, 'toilet', ' ', '') $$, + '23514', 'new row for relation "service" violates check constraint "name_not_empty"', + 'Should not be able to insert services with a blank name.' +); + +reset role; + + +select * +from finish(); + +rollback; + diff --git a/test/service_i18n.sql b/test/service_i18n.sql new file mode 100644 index 0000000..e37582a --- /dev/null +++ b/test/service_i18n.sql @@ -0,0 +1,49 @@ +-- Test service_i18n +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(27); + +set search_path to camper, public; + +select has_table('service_i18n'); +select has_pk('service_i18n'); +select col_is_pk('service_i18n', array['service_id', 'lang_tag']); +select table_privs_are('service_i18n', 'guest', array['SELECT']); +select table_privs_are('service_i18n', 'employee', array['SELECT']); +select table_privs_are('service_i18n', 'admin', array['SELECT', 'INSERT', 'UPDATE', 'DELETE']); +select table_privs_are('service_i18n', 'authenticator', array[]::text[]); + +select has_column('service_i18n', 'service_id'); +select col_is_fk('service_i18n', 'service_id'); +select fk_ok('service_i18n', 'service_id', 'service', 'service_id'); +select col_type_is('service_i18n', 'service_id', 'integer'); +select col_not_null('service_i18n', 'service_id'); +select col_hasnt_default('service_i18n', 'service_id'); + +select has_column('service_i18n', 'lang_tag'); +select col_is_fk('service_i18n', 'lang_tag'); +select fk_ok('service_i18n', 'lang_tag', 'language', 'lang_tag'); +select col_type_is('service_i18n', 'lang_tag', 'text'); +select col_not_null('service_i18n', 'lang_tag'); +select col_hasnt_default('service_i18n', 'lang_tag'); + +select has_column('service_i18n', 'name'); +select col_type_is('service_i18n', 'name', 'text'); +select col_not_null('service_i18n', 'name'); +select col_hasnt_default('service_i18n', 'name'); + +select has_column('service_i18n', 'description'); +select col_type_is('service_i18n', 'description', 'xml'); +select col_not_null('service_i18n', 'description'); +select col_hasnt_default('service_i18n', 'description'); + + +select * +from finish(); + +rollback; + diff --git a/test/services_carousel.sql b/test/services_carousel.sql new file mode 100644 index 0000000..ec02bba --- /dev/null +++ b/test/services_carousel.sql @@ -0,0 +1,178 @@ +-- Test services_carousel +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(30); + +set search_path to camper, public; + +select has_table('services_carousel'); +select has_pk('services_carousel'); +select table_privs_are('services_carousel', 'guest', array['SELECT']); +select table_privs_are('services_carousel', 'employee', array['SELECT']); +select table_privs_are('services_carousel', 'admin', array['SELECT', 'INSERT', 'UPDATE', 'DELETE']); +select table_privs_are('services_carousel', 'authenticator', array[]::text[]); + +select has_column('services_carousel', 'media_id'); +select col_is_pk('services_carousel', 'media_id'); +select col_is_fk('services_carousel', 'media_id'); +select fk_ok('services_carousel', 'media_id', 'media', 'media_id'); +select col_type_is('services_carousel', 'media_id', 'integer'); +select col_not_null('services_carousel', 'media_id'); +select col_hasnt_default('services_carousel', 'media_id'); + +select has_column('services_carousel', 'caption'); +select col_type_is('services_carousel', 'caption', 'text'); +select col_not_null('services_carousel', 'caption'); +select col_hasnt_default('services_carousel', 'caption'); + +set client_min_messages to warning; +truncate services_carousel cascade; +truncate media cascade; +truncate company_host cascade; +truncate company_user cascade; +truncate company cascade; +truncate auth."user" cascade; +reset client_min_messages; + +insert into auth."user" (user_id, email, name, password, cookie, cookie_expires_at) +values (1, 'demo@tandem.blog', 'Demo', 'test', '44facbb30d8a419dfd4bfbc44a4b5539d4970148dfc84bed0e', current_timestamp + interval '1 month') + , (5, 'admin@tandem.blog', 'Demo', 'test', '12af4c88b528c2ad4222e3740496ecbc58e76e26f087657524', current_timestamp + interval '1 month') +; + +insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag) +values (2, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca') + , (4, 'Company 4', 'XX234', '', '666-666-666', 'b@b', '', '', '', '', '', 'FR', 'USD', 'ca') +; + +insert into company_user (company_id, user_id, role) +values (2, 1, 'admin') + , (4, 5, 'admin') +; + +insert into company_host (company_id, host) +values (2, 'co2') + , (4, 'co4') +; + +insert into media (media_id, company_id, original_filename, media_type, content) +values ( 7, 2, 'text2.txt', 'text/plain', 'content2') + , ( 8, 2, 'text3.txt', 'text/plain', 'content3') + , ( 9, 4, 'text4.txt', 'text/plain', 'content4') + , (10, 4, 'text5.txt', 'text/plain', 'content5') +; + +insert into services_carousel (media_id, caption) +values (7, 'Caption 7') + , (9, 'Caption 9') +; + +prepare carousel_data as +select media_id, caption +from services_carousel +order by media_id, caption; + +set role guest; +select bag_eq( + 'carousel_data', + $$ values (7, 'Caption 7') + , (9, 'Caption 9') + $$, + 'Everyone should be able to list all carousel media across all companies' +); +reset role; + +select set_cookie('44facbb30d8a419dfd4bfbc44a4b5539d4970148dfc84bed0e/demo@tandem.blog', 'co2'); + +select lives_ok( + $$ insert into services_carousel(media_id, caption) + values (8, 'Caption 8') $$, + 'Admin from company 2 should be able to insert a new carousel media to that company.' +); + +select bag_eq( + 'carousel_data', + $$ values (7, 'Caption 7') + , (8, 'Caption 8') + , (9, 'Caption 9') + $$, + 'The new row should have been added' +); + +select lives_ok( + $$ update services_carousel set caption = 'Caption 8.8' where media_id = 8 $$, + 'Admin from company 2 should be able to update carousel media of that company.' +); + +select bag_eq( + 'carousel_data', + $$ values (7, 'Caption 7') + , (8, 'Caption 8.8') + , (9, 'Caption 9') + $$, + 'The row should have been updated.' +); + +select lives_ok( + $$ delete from services_carousel where media_id = 8 $$, + 'Admin from company 2 should be able to delete carousel media from that company.' +); + +select bag_eq( + 'carousel_data', + $$ values (7, 'Caption 7') + , (9, 'Caption 9') + $$, + 'The row should have been deleted.' +); + +select throws_ok( + $$ insert into services_carousel (media_id, caption) + values (10, 'Caption 10') $$, + '42501', 'new row violates row-level security policy for table "services_carousel"', + 'Admin from company 2 should NOT be able to insert new media to company 4.' +); + +select lives_ok( + $$ update services_carousel set caption = 'Nope' where media_id = 9 $$, + 'Admin from company 2 should not be able to update new carousel media of company 4, but no error if media_id is not changed.' +); + +select bag_eq( + 'carousel_data', + $$ values (7, 'Caption 7') + , (9, 'Caption 9') + $$, + 'No row should have been changed.' +); + +select throws_ok( + $$ update services_carousel set media_id = 10 where media_id = 7 $$, + '42501', 'new row violates row-level security policy for table "services_carousel"', + 'Admin from company 2 should NOT be able to move carousel media to company 4' +); + +select lives_ok( + $$ delete from services_carousel where media_id = 9 $$, + 'Admin from company 2 should NOT be able to delete carousel media from company 4, but no error is thrown' +); + +select bag_eq( + 'carousel_data', + $$ values (7, 'Caption 7') + , (9, 'Caption 9') + $$, + 'No row should have been changed' +); + +reset role; + + +select * +from finish(); + +rollback; + diff --git a/test/services_carousel_i18n.sql b/test/services_carousel_i18n.sql new file mode 100644 index 0000000..8503b52 --- /dev/null +++ b/test/services_carousel_i18n.sql @@ -0,0 +1,44 @@ +-- Test services_carousel_i18n +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(23); + +set search_path to camper, public; + +select has_table('services_carousel_i18n'); +select has_pk('services_carousel_i18n'); +select col_is_pk('services_carousel_i18n', array['media_id', 'lang_tag']); +select table_privs_are('services_carousel_i18n', 'guest', array['SELECT']); +select table_privs_are('services_carousel_i18n', 'employee', array['SELECT']); +select table_privs_are('services_carousel_i18n', 'admin', array['SELECT', 'INSERT', 'UPDATE', 'DELETE']); +select table_privs_are('services_carousel_i18n', 'authenticator', array[]::text[]); + +select has_column('services_carousel_i18n', 'media_id'); +select col_is_fk('services_carousel_i18n', 'media_id'); +select fk_ok('services_carousel_i18n', 'media_id', 'services_carousel', 'media_id'); +select col_type_is('services_carousel_i18n', 'media_id', 'integer'); +select col_not_null('services_carousel_i18n', 'media_id'); +select col_hasnt_default('services_carousel_i18n', 'media_id'); + +select has_column('services_carousel_i18n', 'lang_tag'); +select col_is_fk('services_carousel_i18n', 'lang_tag'); +select fk_ok('services_carousel_i18n', 'lang_tag', 'language', 'lang_tag'); +select col_type_is('services_carousel_i18n', 'lang_tag', 'text'); +select col_not_null('services_carousel_i18n', 'lang_tag'); +select col_hasnt_default('services_carousel_i18n', 'lang_tag'); + +select has_column('services_carousel_i18n', 'caption'); +select col_type_is('services_carousel_i18n', 'caption', 'text'); +select col_not_null('services_carousel_i18n', 'caption'); +select col_hasnt_default('services_carousel_i18n', 'caption'); + + +select * +from finish(); + +rollback; + diff --git a/test/translate_service.sql b/test/translate_service.sql new file mode 100644 index 0000000..8abf2cb --- /dev/null +++ b/test/translate_service.sql @@ -0,0 +1,69 @@ +-- Test translate_service +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(13); + +set search_path to camper, public; + +select has_function('camper', 'translate_service', array['integer', 'text', 'text', 'text']); +select function_lang_is('camper', 'translate_service', array['integer', 'text', 'text', 'text'], 'sql'); +select function_returns('camper', 'translate_service', array['integer', 'text', 'text', 'text'], 'void'); +select isnt_definer('camper', 'translate_service', array['integer', 'text', 'text', 'text']); +select volatility_is('camper', 'translate_service', array['integer', 'text', 'text', 'text'], 'volatile'); +select function_privs_are('camper', 'translate_service', array['integer', 'text', 'text', 'text'], 'guest', array[]::text[]); +select function_privs_are('camper', 'translate_service', array['integer', 'text', 'text', 'text'], 'employee', array[]::text[]); +select function_privs_are('camper', 'translate_service', array['integer', 'text', 'text', 'text'], 'admin', array['EXECUTE']); +select function_privs_are('camper', 'translate_service', array['integer', 'text', 'text', 'text'], 'authenticator', array[]::text[]); + + +set client_min_messages to warning; +truncate service cascade; +truncate company cascade; +reset client_min_messages; + +insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag) +values (1, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca') +; + +insert into service (service_id, company_id, icon_name, name, description) +values (5, 1, 'information', 'Service A', '

A

') + , (6, 1, 'toilet', 'Service B', '

B

') +; + +insert into service_i18n (service_id, lang_tag, name, description) +values (6, 'ca', 'serveib', '

B

') +; + +select lives_ok( + $$ select translate_service(5, 'ca', 'Servei A', '

a

') $$, + 'Should be able to translate the first service' +); + +select lives_ok( + $$ select translate_service(6, 'es', 'Servicio B', '

b

') $$, + 'Should be able to translate the second service' +); + +select lives_ok( + $$ select translate_service(6, 'ca', 'Servei B', null) $$, + 'Should be able to overwrite the catalan translation of the second service, with no description' +); + +select bag_eq( + $$ select service_id, lang_tag, name, description::text from service_i18n $$, + $$ values (5, 'ca', 'Servei A', '

a

') + , (6, 'ca', 'Servei B', '') + , (6, 'es', 'Servicio B', '

b

') + $$, + 'Should have added and updated all translations.' +); + + +select * +from finish(); + +rollback; diff --git a/test/translate_services_carousel_slide.sql b/test/translate_services_carousel_slide.sql new file mode 100644 index 0000000..73d1e31 --- /dev/null +++ b/test/translate_services_carousel_slide.sql @@ -0,0 +1,78 @@ +-- Test translate_services_carousel_slide +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(13); + +set search_path to camper, public; + +select has_function('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text']); +select function_lang_is('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text'], 'sql'); +select function_returns('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text'], 'void'); +select isnt_definer('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text']); +select volatility_is('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text'], 'volatile'); +select function_privs_are('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text'], 'guest', array[]::text[]); +select function_privs_are('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text'], 'employee', array[]::text[]); +select function_privs_are('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text'], 'admin', array['EXECUTE']); +select function_privs_are('camper', 'translate_services_carousel_slide', array['integer', 'text', 'text'], 'authenticator', array[]::text[]); + + +set client_min_messages to warning; +truncate services_carousel_i18n cascade; +truncate services_carousel cascade; +truncate media cascade; +truncate company cascade; +reset client_min_messages; + +insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag) +values (1, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca') +; + +insert into media (media_id, company_id, original_filename, media_type, content) +values (5, 1, 'text.txt', 'text/plain', 'hello, world!') + , (6, 1, 'image.svg', 'image/svg+xml', '') + , (7, 1, 'cover4.xpm', 'image/x-xpixmap', 'static char *s[]={"1 1 1 1","a c #ffffff","a"};') +; + +insert into services_carousel (media_id, caption) +values (5, 'Source caption') + , (6, 'Another caption') + , (7, 'N/A') +; + +insert into services_carousel_i18n (media_id, lang_tag, caption) +values (5, 'en', 'Target caption') +; + +select lives_ok( + $$ select translate_services_carousel_slide(5, 'ca', 'Traducció') $$, + 'Should be able to translate a carousel slide' +); + +select lives_ok( + $$ select translate_services_carousel_slide(6, 'es', null) $$, + 'Should be able to “translate” a carousel slide to the empty string' +); + +select lives_ok( + $$ select translate_services_carousel_slide(5, 'en', 'Not anymore') $$, + 'Should be able to overwrite a slide’s translation' +); + +select bag_eq( + $$ select media_id, lang_tag, caption from services_carousel_i18n $$, + $$ values (5, 'ca', 'Traducció') + , (5, 'en', 'Not anymore') + , (6, 'es', '') + $$, + 'Should have all three slides' +); + + +select * +from finish(); + +rollback; diff --git a/verify/add_service.sql b/verify/add_service.sql new file mode 100644 index 0000000..5981e8d --- /dev/null +++ b/verify/add_service.sql @@ -0,0 +1,7 @@ +-- Verify camper:add_service on pg + +begin; + +select has_function_privilege('camper.add_service(integer, text, text, text)', 'execute'); + +rollback; diff --git a/verify/add_services_carousel_slide.sql b/verify/add_services_carousel_slide.sql new file mode 100644 index 0000000..4625053 --- /dev/null +++ b/verify/add_services_carousel_slide.sql @@ -0,0 +1,7 @@ +-- Verify camper:add_services_carousel_slide on pg + +begin; + +select has_function_privilege('camper.add_services_carousel_slide(integer, text)', 'execute'); + +rollback; diff --git a/verify/available_icons.sql b/verify/available_icons.sql new file mode 100644 index 0000000..3b3b5bc --- /dev/null +++ b/verify/available_icons.sql @@ -0,0 +1,28 @@ +-- Verify camper:available_icons on pg + +begin; + +set search_path to camper; + +select 1 / count(*) from icon where icon_name = 'baby'; +select 1 / count(*) from icon where icon_name = 'ball'; +select 1 / count(*) from icon where icon_name = 'bicycle'; +select 1 / count(*) from icon where icon_name = 'campfire'; +select 1 / count(*) from icon where icon_name = 'castle'; +select 1 / count(*) from icon where icon_name = 'fridge'; +select 1 / count(*) from icon where icon_name = 'information'; +select 1 / count(*) from icon where icon_name = 'kayak'; +select 1 / count(*) from icon where icon_name = 'outing'; +select 1 / count(*) from icon where icon_name = 'pool'; +select 1 / count(*) from icon where icon_name = 'puzzle'; +select 1 / count(*) from icon where icon_name = 'restaurant'; +select 1 / count(*) from icon where icon_name = 'route'; +select 1 / count(*) from icon where icon_name = 'rv'; +select 1 / count(*) from icon where icon_name = 'shower'; +select 1 / count(*) from icon where icon_name = 'store'; +select 1 / count(*) from icon where icon_name = 'toilet'; +select 1 / count(*) from icon where icon_name = 'washer'; +select 1 / count(*) from icon where icon_name = 'wheelchair'; +select 1 / count(*) from icon where icon_name = 'wifi'; + +rollback; diff --git a/verify/edit_service.sql b/verify/edit_service.sql new file mode 100644 index 0000000..4c60aea --- /dev/null +++ b/verify/edit_service.sql @@ -0,0 +1,7 @@ +-- Verify camper:edit_service on pg + +begin; + +select has_function_privilege('camper.edit_service(integer, text, text, text)', 'execute'); + +rollback; diff --git a/verify/icon.sql b/verify/icon.sql new file mode 100644 index 0000000..85bdc4c --- /dev/null +++ b/verify/icon.sql @@ -0,0 +1,9 @@ +-- Verify camper:icon on pg + +begin; + +select icon_name +from camper.icon +where false; + +rollback; diff --git a/verify/remove_services_carousel_slide.sql b/verify/remove_services_carousel_slide.sql new file mode 100644 index 0000000..e7e4063 --- /dev/null +++ b/verify/remove_services_carousel_slide.sql @@ -0,0 +1,7 @@ +-- Verify camper:remove_services_carousel_slide on pg + +begin; + +select has_function_privilege('camper.remove_services_carousel_slide(integer)', 'execute'); + +rollback; diff --git a/verify/service.sql b/verify/service.sql new file mode 100644 index 0000000..57f9a32 --- /dev/null +++ b/verify/service.sql @@ -0,0 +1,19 @@ +-- Verify camper:service on pg + +begin; + +select service_id + , company_id + , icon_name + , name + , description +from camper.service +where false; + +select 1 / count(*) from pg_class where oid = 'camper.service'::regclass and relrowsecurity; +select 1 / count(*) from pg_policy where polname = 'guest_ok' and polrelid = 'camper.service'::regclass; +select 1 / count(*) from pg_policy where polname = 'insert_to_company' and polrelid = 'camper.service'::regclass; +select 1 / count(*) from pg_policy where polname = 'update_company' and polrelid = 'camper.service'::regclass; +select 1 / count(*) from pg_policy where polname = 'delete_from_company' and polrelid = 'camper.service'::regclass; + +rollback; diff --git a/verify/service_i18n.sql b/verify/service_i18n.sql new file mode 100644 index 0000000..cb2289a --- /dev/null +++ b/verify/service_i18n.sql @@ -0,0 +1,12 @@ +-- Verify camper:service_i18n on pg + +begin; + +select service_id + , lang_tag + , name + , description +from camper.service_i18n +where false; + +rollback; diff --git a/verify/services_carousel.sql b/verify/services_carousel.sql new file mode 100644 index 0000000..4fe85fa --- /dev/null +++ b/verify/services_carousel.sql @@ -0,0 +1,16 @@ +-- Verify camper:services_carousel on pg + +begin; + +select media_id + , caption +from camper.services_carousel +where false; + +select 1 / count(*) from pg_class where oid = 'camper.services_carousel'::regclass and relrowsecurity; +select 1 / count(*) from pg_policy where polname = 'guest_ok' and polrelid = 'camper.services_carousel'::regclass; +select 1 / count(*) from pg_policy where polname = 'insert_to_company' and polrelid = 'camper.services_carousel'::regclass; +select 1 / count(*) from pg_policy where polname = 'update_company' and polrelid = 'camper.services_carousel'::regclass; +select 1 / count(*) from pg_policy where polname = 'delete_from_company' and polrelid = 'camper.services_carousel'::regclass; + +rollback; diff --git a/verify/services_carousel_i18n.sql b/verify/services_carousel_i18n.sql new file mode 100644 index 0000000..bc3e78c --- /dev/null +++ b/verify/services_carousel_i18n.sql @@ -0,0 +1,11 @@ +-- Verify camper:services_carousel_i18n on pg + +begin; + +select media_id + , lang_tag + , caption +from camper.services_carousel_i18n +where false; + +rollback; diff --git a/verify/translate_service.sql b/verify/translate_service.sql new file mode 100644 index 0000000..96aebd5 --- /dev/null +++ b/verify/translate_service.sql @@ -0,0 +1,7 @@ +-- Verify camper:translate_service on pg + +begin; + +select has_function_privilege('camper.translate_service(integer, text, text, text)', 'execute'); + +rollback; diff --git a/verify/translate_services_carousel_slide.sql b/verify/translate_services_carousel_slide.sql new file mode 100644 index 0000000..14120da --- /dev/null +++ b/verify/translate_services_carousel_slide.sql @@ -0,0 +1,7 @@ +-- Verify camper:translate_services_carousel_slide on pg + +begin; + +select has_function_privilege('camper.translate_services_carousel_slide(integer, text, text)', 'execute'); + +rollback; diff --git a/web/static/public.css b/web/static/public.css index 2e221d7..35c52a0 100644 --- a/web/static/public.css +++ b/web/static/public.css @@ -135,6 +135,10 @@ p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; } +p + p { + margin-top: 1.5em; +} + h2 { font-size: 4.2rem; font-weight: 400; @@ -301,16 +305,16 @@ nav .has-submenu:hover ul, nav .has-submenu:focus-within ul { #menuShowHide:checked ~ nav { display: block; } - + #menuShowHide:checked ~ label[for="menuShowHide"]::before { content: "✕"; } - + nav ul { flex-direction: column; align-items: start; } - + nav .has-submenu ul { display: flex; position: static; @@ -432,28 +436,33 @@ dl, .nature div + div, .outside_activities > div { background-color: var(--accent); } -.surroundings .spiel { +.carousel { + display: none; +} + +.carousel .spiel { font-size: 2.4rem; padding-right: 4rem; } -.surroundings .spiel p { +.carousel .spiel p { + margin-top: 0; margin-bottom: 2rem; } -.surroundings figure, .surroundings .slick-track > img { +.carousel figure, .carousel .slick-track > img { margin-right: 5rem; position: relative; } -.surroundings img { +.carousel img { height: 40rem; width: 100%; border-radius: 5px; object-fit: cover; } -.surroundings figcaption { +.carousel figcaption { padding: 10px 15px; background: var(--clar); width: fit-content; @@ -465,23 +474,23 @@ dl, .nature div + div, .outside_activities > div { font-size: 1.7rem; } -.surroundings .slick-list { +.carousel .slick-list { order: 1; padding: 0 20% 0 0 !important; } -.surroundings .slick-track { +.carousel .slick-track { display: flex; align-items: start; } -.surroundings .slick-slider { +.carousel.slick-slider { display: flex; flex-wrap: wrap; justify-content: end; } -.surroundings .slick-arrow { +.carousel .slick-arrow { font-size: 6rem; line-height: 1; width: 5rem; @@ -492,25 +501,25 @@ dl, .nature div + div, .outside_activities > div { transition: transform 0.5s ease; } -.surroundings .slick-prev.slick-arrow, .surroundings .slick-next.slick-arrow { +.carousel .slick-prev.slick-arrow, .carousel .slick-next.slick-arrow { opacity: 1; } -.surroundings .slick-prev { +.carousel .slick-prev { order: 2; margin: 2.5rem 4rem 0 0; } -.surroundings .slick-prev:hover { +.carousel .slick-prev:hover { transform: translateX(-1.3rem); } -.surroundings .slick-next { +.carousel .slick-next { order: 3; margin: 2.5rem 7rem 0 0; } -.surroundings .slick-next:hover { +.carousel .slick-next:hover { transform: translateX(1.3rem); } @@ -526,7 +535,7 @@ dl { } dl div { - flex: 1; + flex-basis: calc(25% - 5rem + 5rem / 4); } dt { @@ -544,32 +553,103 @@ dt { dl { flex-direction: column; } + + del div { + flex-basis: 100%; + } +} + +.icon_baby { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M92,136a8,8,0,1,1,8-8A8,8,0,0,1,92,136Zm72-16a8,8,0,1,0,8,8A8,8,0,0,0,164,120Zm-10.13,44.62a49,49,0,0,1-51.74,0,4,4,0,0,0-4.26,6.76,57,57,0,0,0,60.26,0,4,4,0,1,0-4.26-6.76ZM228,128A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92.11,92.11,0,0,0-90.06-92C116.26,54.07,116,71.83,116,72a12,12,0,0,0,24,0,4,4,0,0,1,8,0,20,20,0,0,1-40,0c0-.78.16-17.31,12-35.64A92,92,0,1,0,220,128Z"/%3E%3C/svg%3E'); +} + +.icon_ball { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M128,28A100,100,0,1,0,228,128,100.11,100.11,0,0,0,128,28Zm85,135.19a92,92,0,0,1-102.18,2.57L130.31,132h89.6A91.61,91.61,0,0,1,213,163.19ZM85.52,46.42A91.11,91.11,0,0,1,116,36.79,92,92,0,0,1,169.29,124h-39ZM219.91,124H177.29a100.06,100.06,0,0,0-46-87.93A92.11,92.11,0,0,1,219.91,124ZM78.59,50.42l21.3,36.89a100.09,100.09,0,0,0-53.16,83.77A91.92,91.92,0,0,1,78.59,50.42ZM55,183.94a92,92,0,0,1,48.87-89.7L123.38,128,78.59,205.58A92.75,92.75,0,0,1,55,183.94ZM128,220a91.37,91.37,0,0,1-42.48-10.42l21.3-36.89a100.07,100.07,0,0,0,99.1,4.16A92,92,0,0,1,128,220Z"/%3E%3C/svg%3E'); } .icon_bicycle { - background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M208,116a43.66,43.66,0,0,0-18.62,4.15L159,68h33a12,12,0,0,1,12,12,4,4,0,0,0,8,0,20,20,0,0,0-20-20H152a4,4,0,0,0-3.46,6L163.7,92H97L79.46,62A4,4,0,0,0,76,60H48a4,4,0,0,0,0,8H73.7L89.89,95.76,70.57,122.25A44.21,44.21,0,1,0,77,127L94.29,103.3,128.54,162a4,4,0,0,0,3.46,2,4.11,4.11,0,0,0,2-.54,4,4,0,0,0,1.44-5.48l-33.83-58h66.74l14.11,24.19A44,44,0,1,0,208,116ZM84,160a36,36,0,1,1-18.16-31.25L44.77,157.64a4,4,0,0,0,6.46,4.72l21.07-28.9A35.92,35.92,0,0,1,84,160Zm124,36a36,36,0,0,1-21.47-64.88l18,30.9a4,4,0,0,0,3.46,2,4.11,4.11,0,0,0,2-.54,4,4,0,0,0,1.44-5.48l-18-30.89A36,36,0,1,1,208,196Z"/%3E%3C/svg%3E'); + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M208,116a43.66,43.66,0,0,0-18.62,4.15L159,68h33a12,12,0,0,1,12,12,4,4,0,0,0,8,0,20,20,0,0,0-20-20H152a4,4,0,0,0-3.46,6L163.7,92H97L79.46,62A4,4,0,0,0,76,60H48a4,4,0,0,0,0,8H73.7L89.89,95.76,70.57,122.25A44.21,44.21,0,1,0,77,127L94.29,103.3,128.54,162a4,4,0,0,0,3.46,2,4.11,4.11,0,0,0,2-.54,4,4,0,0,0,1.44-5.48l-33.83-58h66.74l14.11,24.19A44,44,0,1,0,208,116ZM84,160a36,36,0,1,1-18.16-31.25L44.77,157.64a4,4,0,0,0,6.46,4.72l21.07-28.9A35.92,35.92,0,0,1,84,160Zm124,36a36,36,0,0,1-21.47-64.88l18,30.9a4,4,0,0,0,3.46,2,4.11,4.11,0,0,0,2-.54,4,4,0,0,0,1.44-5.48l-18-30.89A36,36,0,1,1,208,196Z"/%3E%3C/svg%3E'); } -.icon_route { - background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M226.46,52.85a4,4,0,0,0-3.43-.73L160.47,67.76,97.79,36.42a4,4,0,0,0-2.76-.3l-64,16A4,4,0,0,0,28,56V200a4,4,0,0,0,5,3.88l62.56-15.64,62.68,31.34a4,4,0,0,0,2.76.3l64-16a4,4,0,0,0,3-3.88V56A4,4,0,0,0,226.46,52.85ZM100,46.47l56,28V209.53l-56-28ZM36,59.12l56-14V180.88l-56,14ZM220,196.88l-56,14V75.12l56-14Z"/%3E%3C/svg%3E'); +.icon_campfire { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M219.81,225.21A4,4,0,0,1,216,228a3.92,3.92,0,0,1-1.21-.19L128,200.2,41.21,227.81A3.92,3.92,0,0,1,40,228a4,4,0,0,1-1.21-7.81l76-24.19-76-24.19a4,4,0,1,1,2.42-7.62L128,191.8l86.79-27.61a4,4,0,1,1,2.42,7.62l-76,24.19,76,24.19A4,4,0,0,1,219.81,225.21ZM72,108c0-19,9.38-38.85,27.12-57.27A152,152,0,0,1,125.9,28.59a4,4,0,0,1,4.2,0,152,152,0,0,1,26.78,22.14C174.62,69.15,184,89,184,108a56,56,0,0,1-54.56,56c-.48,0-1,0-1.44,0s-1,0-1.44,0A56,56,0,0,1,72,108Zm56,48a20,20,0,0,0,20-20c0-17.39-14.37-30.53-20-35-5.63,4.48-20,17.62-20,35A20,20,0,0,0,128,156ZM80,108a48,48,0,0,0,23.28,41.13A27.83,27.83,0,0,1,100,136c0-25.84,24.73-42.63,25.78-43.33a4,4,0,0,1,4.44,0c1.05.7,25.78,17.49,25.78,43.33a27.83,27.83,0,0,1-3.28,13.13A48,48,0,0,0,176,108c0-36.37-38.49-64.76-48-71.21C118.5,43.25,80,71.68,80,108Z"/%3E%3C/svg%3E'); } -.icon_outing { - background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M164,44.17V32a20,20,0,0,0-20-20H112A20,20,0,0,0,92,32V44.17A52.05,52.05,0,0,0,44,96V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V96A52.05,52.05,0,0,0,164,44.17ZM112,20h32a12,12,0,0,1,12,12V44H100V32A12,12,0,0,1,112,20Zm60,144H84V152a12,12,0,0,1,12-12h64a12,12,0,0,1,12,12Zm-88,8h56v12a4,4,0,0,0,8,0V172h24v48H84Zm120,44a4,4,0,0,1-4,4H180V152a20,20,0,0,0-20-20H96a20,20,0,0,0-20,20v68H56a4,4,0,0,1-4-4V96A44.05,44.05,0,0,1,96,52h64a44.05,44.05,0,0,1,44,44ZM148,88a4,4,0,0,1-4,4H112a4,4,0,0,1,0-8h32A4,4,0,0,1,148,88Z"/%3E%3C/svg%3E'); +.icon_castle { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M200,28H184a12,12,0,0,0-12,12V56a4,4,0,0,1-4,4H152a4,4,0,0,1-4-4V40a12,12,0,0,0-12-12H120a12,12,0,0,0-12,12V56a4,4,0,0,1-4,4H88a4,4,0,0,1-4-4V40A12,12,0,0,0,72,28H56A12,12,0,0,0,44,40V84.69a11.93,11.93,0,0,0,3.51,8.48l11.32,11.32A4,4,0,0,1,60,107.31V216a12,12,0,0,0,12,12H184a12,12,0,0,0,12-12V107.31a4,4,0,0,1,1.17-2.82l11.32-11.32A11.93,11.93,0,0,0,212,84.69V40A12,12,0,0,0,200,28ZM148,220H108V152a20,20,0,0,1,40,0ZM204,84.69a4,4,0,0,1-1.17,2.82L191.51,98.83a11.93,11.93,0,0,0-3.51,8.48V216a4,4,0,0,1-4,4H156V152a28,28,0,0,0-56,0v68H72a4,4,0,0,1-4-4V107.31a11.93,11.93,0,0,0-3.51-8.48L53.17,87.51A4,4,0,0,1,52,84.69V40a4,4,0,0,1,4-4H72a4,4,0,0,1,4,4V56A12,12,0,0,0,88,68h16a12,12,0,0,0,12-12V40a4,4,0,0,1,4-4h16a4,4,0,0,1,4,4V56a12,12,0,0,0,12,12h16a12,12,0,0,0,12-12V40a4,4,0,0,1,4-4h16a4,4,0,0,1,4,4Z"/%3E%3C/svg%3E'); +} + +.icon_fridge { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17.57617 28.04395"%3E%3Cpath stroke-width="0" d="m15.62988,0H1.94629C.87305,0,0,.87305,0,1.94629v25.59766c0,.27637.22363.5.5.5h16.57617c.27637,0,.5-.22363.5-.5V1.94629c0-1.07324-.87305-1.94629-1.94629-1.94629ZM1.94629,1h13.68359c.52148,0,.94629.42432.94629.94629v7.41357H1V1.94629c0-.52197.42432-.94629.94629-.94629Zm-.94629,26.04395V10.35986h15.57617v16.68408H1Z"/%3E%3Cpath stroke-width="0" d="m3.64453,5.36426h2.04248c.27637,0,.5-.22363.5-.5s-.22363-.5-.5-.5h-2.04248c-.27637,0-.5.22363-.5.5s.22363.5.5.5Z"/%3E%3Cpath stroke-width="0" d="m5.68701,13.271h-2.04248c-.27637,0-.5.22363-.5.5s.22363.5.5.5h2.04248c.27637,0,.5-.22363.5-.5s-.22363-.5-.5-.5Z"/%3E%3C/svg%3E'); +} + +.icon_information { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M140,176a4,4,0,0,1-4,4,12,12,0,0,1-12-12V128a4,4,0,0,0-4-4,4,4,0,0,1,0-8,12,12,0,0,1,12,12v40a4,4,0,0,0,4,4A4,4,0,0,1,140,176ZM124,92a8,8,0,1,0-8-8A8,8,0,0,0,124,92Zm104,36A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"/%3E%3C/svg%3E'); } .icon_kayak { background-image: url('data:image/svg+xml,%3Csvg viewBox="0 0 29.52905 28.08545" xmlns="http://www.w3.org/2000/svg" id="uuid-87ec619a-4896-40b8-8478-aa076dee3f7c"%3E%3Cpath stroke-width="0" d="m29.46728,11.26074l-.57617-2.15186c-.08398-.31299-.24609-.59229-.45801-.78613-.26758-.24658-.59863-.3418-.90625-.25879l-3.4834.93213c-.26953.07227-.48535.26807-.6084.54932l-.5752,1.30713c-.0719.16376-.10333.34686-.10742.53485l-3.05627.81787c-.23956-3.37067-1.03204-8.79126-2.35193-10.66425l-.22363-.31836C16.58057.45752,15.69971.00049,14.76318,0h-.00049c-.94873,0-1.80566.44434-2.35156,1.21875-1.71973,2.44043-2.65771,9.75146-2.65771,12.82422,0,.24457.00812.52399.0199.81769l-3.25604.87134c-.09741-.16071-.21613-.30347-.36005-.40924l-1.15088-.84424c-.24854-.18213-.53125-.24463-.80127-.17236l-3.48389.93164c-.56689.15234-.85693.84961-.65918,1.58691l.57617,2.15137c.0835.31348.24561.59277.45654.78613.20508.18848.4458.28809.68506.28809.07471,0,.14893-.00879.22168-.02832l3.48486-.93359c.26807-.07227.48389-.26758.60693-.54883l.57568-1.30664c.07172-.16357.10309-.3465.10718-.5343l3.05591-.81793c.25531,3.52673,1.14368,8.94983,2.5791,10.98602.5459.77441,1.40332,1.21875,2.35205,1.21875.93652,0,1.81738-.45703,2.35645-1.22266l.22461-.31738c1.60352-2.27637,2.43066-9.79492,2.43066-12.50244,0-.23499-.00854-.51709-.021-.81805l3.25732-.87183c.09747.16071.21625.30347.36035.40912l1.15039.84473c.18066.13281.38086.20166.5791.20166.07422,0,.14941-.00977.22168-.0293l3.48535-.93262c.56641-.15234.85645-.84863.65918-1.58594Zm-24.24072,6.86182l-3.41602.93262c-.03516-.01465-.14844-.12109-.20654-.33691l-.57617-2.15137c-.05713-.21484-.01318-.3623-.04688-.3623h-.00098l3.4165-.93164s.00586.00293.01709.01074c.00049,0,.00098.00098.00098.00098l1.00842.74017-1.90881.5108c-.2666.07227-.4248.3457-.35352.6123.05957.22363.26172.37109.48242.37109.04297,0,.08643-.00586.12988-.0166l1.91559-.5127-.46198,1.13281Zm5.52686-4.07959c0-3.07959.93994-10.06934,2.4751-12.24805.35596-.50488.91504-.79492,1.53418-.79492.62109.00049,1.18213.2915,1.54053.79932l.22266.31689c1.17902,1.67261,1.96533,7.08936,2.18457,10.35278l-1.50305.40228c-.19397-2.55505-1.02423-4.83514-2.44324-4.83514-1.63379,0-2.48828,3.02197-2.48828,6.00684,0,.04913.00214.09814.00262.14728l-1.51538.40552c-.00574-.19403-.0097-.38147-.0097-.5528Zm2.52692-.12079c.02441-2.93951.89984-4.88605,1.48383-4.88605.53003,0,1.29828,1.6062,1.45496,4.09961l-2.93878.78644Zm2.96765.24115c-.02441,2.93933-.89978,4.88599-1.48383,4.88599-.53003,0-1.29834-1.60632-1.45496-4.09937l2.93878-.78662Zm2.52692-.12036c0,2.66846-.84961,9.94092-2.24902,11.92725l-.22363.31641c-.71387,1.01367-2.36084,1.01562-3.07373.00391-1.31152-1.86127-2.18622-7.22681-2.414-10.67285l1.50641-.4032c.19397,2.55505,1.02417,4.83484,2.44324,4.83484,1.63379,0,2.48828-3.02148,2.48828-6.00635,0-.04926-.00214-.09845-.00262-.14777l1.51514-.40558c.00659.20087.00995.38617.00995.55334Zm6.35742-1.23047s-.00684-.00293-.01855-.01123l-1.00897-.74091,1.90936-.51105c.26758-.07129.42578-.34521.35449-.6123-.07227-.26562-.3418-.42725-.6123-.35352l-1.91577.5127.46069-1.13379,3.41699-.93164c.03516.01416.14844.12012.20605.33691l.57617,2.15186c.05957.21973.01953.36816.04883.36133l-3.41699.93164Z"/%3E%3C/svg%3E'); } +.icon_outing { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M164,44.17V32a20,20,0,0,0-20-20H112A20,20,0,0,0,92,32V44.17A52.05,52.05,0,0,0,44,96V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V96A52.05,52.05,0,0,0,164,44.17ZM112,20h32a12,12,0,0,1,12,12V44H100V32A12,12,0,0,1,112,20Zm60,144H84V152a12,12,0,0,1,12-12h64a12,12,0,0,1,12,12Zm-88,8h56v12a4,4,0,0,0,8,0V172h24v48H84Zm120,44a4,4,0,0,1-4,4H180V152a20,20,0,0,0-20-20H96a20,20,0,0,0-20,20v68H56a4,4,0,0,1-4-4V96A44.05,44.05,0,0,1,96,52h64a44.05,44.05,0,0,1,44,44ZM148,88a4,4,0,0,1-4,4H112a4,4,0,0,1,0-8h32A4,4,0,0,1,148,88Z"/%3E%3C/svg%3E'); +} + +.icon_pool { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M88,145.39a4,4,0,0,0,4-4V124h72v19.29a4,4,0,0,0,8,0V32a4,4,0,0,0-8,0V52H92V32a4,4,0,0,0-8,0V141.39A4,4,0,0,0,88,145.39ZM92,116V92h72v24Zm72-56V84H92V60ZM28,168a4,4,0,0,1,4-4c13.21,0,20.12,4.61,26.22,8.67,5.9,3.93,11,7.33,21.78,7.33s15.88-3.4,21.78-7.33c6.09-4.06,13-8.67,26.21-8.67s20.13,4.61,26.22,8.67c5.9,3.93,11,7.33,21.79,7.33s15.88-3.4,21.78-7.33c6.1-4.06,13-8.67,26.22-8.67a4,4,0,0,1,0,8c-10.79,0-15.88,3.4-21.78,7.33-6.1,4.06-13,8.67-26.22,8.67s-20.13-4.61-26.22-8.67c-5.9-3.93-11-7.33-21.79-7.33s-15.88,3.4-21.78,7.33c-6.09,4.06-13,8.67-26.21,8.67s-20.12-4.61-26.22-8.67C47.88,175.4,42.79,172,32,172A4,4,0,0,1,28,168Zm200,40a4,4,0,0,1-4,4c-10.79,0-15.88,3.4-21.78,7.33-6.1,4.06-13,8.67-26.22,8.67s-20.13-4.61-26.22-8.67c-5.9-3.93-11-7.33-21.79-7.33s-15.88,3.4-21.78,7.33c-6.09,4.06-13,8.67-26.21,8.67s-20.12-4.61-26.22-8.67C47.88,215.4,42.79,212,32,212a4,4,0,0,1,0-8c13.21,0,20.12,4.61,26.22,8.67,5.9,3.93,11,7.33,21.78,7.33s15.88-3.4,21.78-7.33c6.09-4.06,13-8.67,26.21-8.67s20.13,4.61,26.22,8.67c5.9,3.93,11,7.33,21.79,7.33s15.88-3.4,21.78-7.33c6.1-4.06,13-8.67,26.22-8.67A4,4,0,0,1,228,208Z"/%3E%3C/svg%3E'); +} + +.icon_puzzle { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M218.14,161.93a4,4,0,0,0-3.86-.24,24,24,0,0,1-34.23-23.25,24,24,0,0,1,34.23-20.13A4,4,0,0,0,220,114.7V72a12,12,0,0,0-12-12H167a32,32,0,1,0-62.91-10.33A32.57,32.57,0,0,0,105,60H64A12,12,0,0,0,52,72v37a32,32,0,1,0-10.33,62.91A32.28,32.28,0,0,0,52,171v37a12,12,0,0,0,12,12H208a12,12,0,0,0,12-12V165.31A4,4,0,0,0,218.14,161.93ZM212,208a4,4,0,0,1-4,4H64a4,4,0,0,1-4-4V165.31a4,4,0,0,0-1.86-3.38,4,4,0,0,0-3.85-.24,24,24,0,0,1-34.24-20.13,24,24,0,0,1,34.24-23.25A4,4,0,0,0,60,114.7V72a4,4,0,0,1,4-4h46.69a4,4,0,0,0,3.62-5.71,24,24,0,0,1,20.13-34.24,24,24,0,0,1,23.25,34.24A4,4,0,0,0,161.31,68H208a4,4,0,0,1,4,4v37a32.57,32.57,0,0,0-10.33-.94A32,32,0,1,0,212,171Z"/%3E%3C/svg%3E'); +} + +.icon_restaurant { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M76,88V40a4,4,0,0,1,8,0V88a4,4,0,0,1-8,0ZM212,40V224a4,4,0,0,1-8,0V172H152a4,4,0,0,1-4-4,264.27,264.27,0,0,1,7.11-55.94c9.47-39.22,27.21-65.41,51.31-75.74A4,4,0,0,1,212,40Zm-8,6.46C162.25,70.33,156.81,145.75,156.1,164H204Zm-88-7.12a4,4,0,0,0-7.9,1.32l8,47.66a36,36,0,0,1-72,0l8-47.66a4,4,0,0,0-7.9-1.32l-8,48A4.89,4.89,0,0,0,36,88a44.06,44.06,0,0,0,40,43.81V224a4,4,0,0,0,8,0V131.81A44.06,44.06,0,0,0,124,88a4.89,4.89,0,0,0,0-.66Z"/%3E%3C/svg%3E'); +} + +.icon_route { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M226.46,52.85a4,4,0,0,0-3.43-.73L160.47,67.76,97.79,36.42a4,4,0,0,0-2.76-.3l-64,16A4,4,0,0,0,28,56V200a4,4,0,0,0,5,3.88l62.56-15.64,62.68,31.34a4,4,0,0,0,2.76.3l64-16a4,4,0,0,0,3-3.88V56A4,4,0,0,0,226.46,52.85ZM100,46.47l56,28V209.53l-56-28ZM36,59.12l56-14V180.88l-56,14ZM220,196.88l-56,14V75.12l56-14Z"/%3E%3C/svg%3E'); +} + +.icon_rv { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29 23.832"%3E%3Cpath stroke-width="0" d="m15.6527,16.65094h-3.92455c-.68449,0-1.23939-.55489-1.23939-1.23939V6.08515c0-.68422.55467-1.2389,1.2389-1.2389h3.92406c.68476,0,1.23987.55511,1.23987,1.23987v9.32592c0,.68422-.55467,1.2389-1.2389,1.2389Zm-3.92504-10.80469c-.13139,0-.2389.1075-.2389.2389v9.32689c0,.13194.10696.2389.2389.2389h3.92406c.13248,0,.23987-.1074.23987-.23987V6.08515c0-.13194-.10696-.2389-.2389-.2389h-3.92504Z"/%3E%3Cpath stroke-width="0" d="m7.83386,11.2486H3.45423c-.68422,0-1.2389-.55467-1.2389-1.2389v-3.92455c0-.68422.55467-1.2389,1.2389-1.2389h4.38012c.68422,0,1.2389.55467,1.2389,1.2389v3.92406c0,.68449-.55489,1.23939-1.23939,1.23939ZM3.45423,5.84626c-.13194,0-.2389.10696-.2389.2389v3.92406c0,.13166.10772.23939.23939.23939h4.37914c.13166,0,.23939-.10772.23939-.23939v-3.92406c0-.13194-.10696-.2389-.2389-.2389H3.45423Z"/%3E%3Cpath stroke-width="0" d="m28.875,11.00897l-3.31604-5.19989h.18054c.72272,0,1.3103-.58594,1.3103-1.30615,0-3.03418-2.47571-4.50293-5.51849-4.50293H1.30981C.58759,0,0,.58594,0,1.30615v18.02783c0,.82843.67157,1.5,1.5,1.5h2.53625c.27747,1.91296,2.05322,3.23883,3.96619,2.9613,1.53394-.22247,2.73883-1.42737,2.9613-2.9613h7.07251c.27747,1.91296,2.05322,3.23883,3.96619,2.9613,1.53394-.22247,2.73883-1.42737,2.9613-2.9613h2.53625c.82843,0,1.5-.67157,1.5-1.5v-8c-.0014-.11981-.04572-.23511-.125-.32501Zm-1.46252-.17499h-8.41248v-4.20093c0-.44131.35776-.79907.79907-.79907h4.2334c.15027-.00006.29254.06744.38751.18378l2.99249,4.81622ZM7.5,22.83398c-1.38074,0-2.5-1.11926-2.5-2.5s1.11926-2.5,2.5-2.5,2.5,1.11932,2.5,2.5-1.11926,2.5-2.5,2.5Zm14,0c-1.38074,0-2.5-1.11926-2.5-2.5s1.11926-2.5,2.5-2.5,2.5,1.11932,2.5,2.5-1.11926,2.5-2.5,2.5Zm6.5-3.5c0,.27614-.22386.5-.5.5h-2.53625c-.27747-1.91296-2.05322-3.23877-3.96619-2.9613-1.53394.22247-2.73883,1.42737-2.9613,2.9613h-7.07251c-.27747-1.91296-2.05322-3.23877-3.96619-2.9613-1.53394.22247-2.73883,1.42737-2.9613,2.9613H1.49993c-.27613,0-.49997-.22387-.49993-.5l.00281-18.02702c.00002-.16883.13818-.30696.30701-.30696h20.2215c2.49295,0,4.51981,1.02413,4.51563,3.51052-.00028.16481-.14263.29856-.30744.29856h-6.07078c-.91711,0-1.66082.74301-1.66169,1.66012l-.00898,9.43901c0,.27637.22363.5.5.5s.5-.22363.5-.5v-4.07422h9.00195v7.5Z"/%3E%3C/svg%3E'); +} + +.icon_shower { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M60,236a8,8,0,1,1-8-8A8,8,0,0,1,60,236Zm24-40a8,8,0,1,0,8,8A8,8,0,0,0,84,196Zm-64,0a8,8,0,1,0,8,8A8,8,0,0,0,20,196Zm32-32a8,8,0,1,0,8,8A8,8,0,0,0,52,164ZM252,40a4,4,0,0,1-4,4H219.31a4,4,0,0,0-2.82,1.17L187.73,73.93,165.86,202a12,12,0,0,1-8.17,9.44A12.09,12.09,0,0,1,154,212a12,12,0,0,1-8.46-3.52l-98-98A12,12,0,0,1,54,90.14l128-21.87,28.76-28.76A11.93,11.93,0,0,1,219.31,36H248A4,4,0,0,1,252,40ZM179.11,76.89,55.37,98a4,4,0,0,0-2.19,6.78l98,98a4,4,0,0,0,6.78-2.17Z"/%3E%3C/svg%3E'); +} + +.icon_store { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M28,112a36,36,0,0,0,16,29.92V208a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V141.92A36,36,0,0,0,228,112l0-16a4.09,4.09,0,0,0-.13-1.1L213.5,44.7A12,12,0,0,0,202,36H54A12,12,0,0,0,42.5,44.7L28.15,94.9A4.09,4.09,0,0,0,28,96ZM50.19,46.9A4,4,0,0,1,54,44H202a4,4,0,0,1,3.84,2.9L218.7,92H37.3ZM100,100h56v12a28,28,0,0,1-56,0ZM36,112V100H92v12a28,28,0,0,1-56,0Zm168,96a4,4,0,0,1-4,4H56a4,4,0,0,1-4-4V145.94a36,36,0,0,0,44-17.48,36,36,0,0,0,64,0,36,36,0,0,0,44,17.48Zm-12-68a28,28,0,0,1-28-28V100h56v12A28,28,0,0,1,192,140Z"/%3E%3C/svg%3E'); +} + +.icon_toilet { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M116,64a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h16A4,4,0,0,1,116,64Zm52,130.86,3.92,27.44A12,12,0,0,1,160,236H96a12,12,0,0,1-11.88-13.7L88,194.86A92.11,92.11,0,0,1,36,112a4,4,0,0,1,4-4H60V40A12,12,0,0,1,72,28H184a12,12,0,0,1,12,12v68h20a4,4,0,0,1,4,4A92.11,92.11,0,0,1,168,194.86ZM68,108H188V40a4,4,0,0,0-4-4H72a4,4,0,0,0-4,4Zm92.34,90.13a92,92,0,0,1-64.68,0L92,223.43a4,4,0,0,0,.94,3.19A3.93,3.93,0,0,0,96,228h64a3.93,3.93,0,0,0,3-1.38,4,4,0,0,0,.94-3.19ZM211.91,116H44.09a84,84,0,0,0,167.82,0Z"/%3E%3C/svg%3E'); +} + +.icon_washer { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24.57617 28.04346"%3E%3Cpath stroke-width="0" d="m22.62988,0H1.94629C.87305,0,0,.87354,0,1.94678v25.59668c0,.27637.22363.5.5.5h23.57617c.27637,0,.5-.22363.5-.5V1.94678c0-1.07324-.87305-1.94678-1.94629-1.94678ZM1.94629,1h20.68359c.52148,0,.94629.4248.94629.94678v3.74756H1V1.94678c0-.52197.42432-.94678.94629-.94678Zm-.94629,26.04346V6.69434h22.57617v20.34912H1Z"/%3E%3Cpath stroke-width="0" d="m3.92139,4.02881h.55273c.27637,0,.5-.22363.5-.5s-.22363-.5-.5-.5h-.55273c-.27637,0-.5.22363-.5.5s.22363.5.5.5Z"/%3E%3Cpath stroke-width="0" d="m6.99805,4.02881h.55322c.27637,0,.5-.22363.5-.5s-.22363-.5-.5-.5h-.55322c-.27637,0-.5.22363-.5.5s.22363.5.5.5Z"/%3E%3Cpath stroke-width="0" d="m12.28809,8.35986c-4.63818,0-8.41162,3.77344-8.41162,8.41211,0,4.6377,3.77344,8.41113,8.41162,8.41113,4.6377,0,8.41113-3.77344,8.41113-8.41113,0-4.63867-3.77344-8.41211-8.41113-8.41211Zm0,1c3.78308,0,6.9071,2.85101,7.3515,6.51611-.02045.01282-.04352.01862-.06244.03467-.01562.01367-1.58887,1.35449-3.57617,1.35645h-.00391c-1.39941,0-2.19141-.55273-3.02979-1.1377-.83887-.58496-1.70703-1.19043-3.1167-1.19043-2.3396,0-4.15607,1.26996-4.96783,1.95667-.00067-.04156-.00629-.08191-.00629-.12366,0-4.08691,3.32471-7.41211,7.41162-7.41211Zm0,14.82324c-3.62976,0-6.6524-2.62415-7.28448-6.07397.05127-.02527.10077-.05597.1424-.09985.01953-.02051,1.99365-2.07031,4.70459-2.07031,1.0957,0,1.76709.46875,2.54492,1.01074.88477.61816,1.8877,1.31738,3.60156,1.31738h.00391c1.63293-.00134,2.9729-.72321,3.68317-1.19769-.15778,3.94849-3.40955,7.11371-7.39606,7.11371Z"/%3E%3C/svg%3E'); +} + +.icon_wheelchair { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M176,76a28,28,0,1,0-28-28A28,28,0,0,0,176,76Zm0-48a20,20,0,1,1-20,20A20,20,0,0,1,176,28ZM164,168a60,60,0,1,1-60-60,4,4,0,0,1,0,8,52,52,0,1,0,52,52,4,4,0,0,1,8,0Zm39.09-34.54a4,4,0,0,1,.83,3.32l-16,80A4,4,0,0,1,184,220a3.44,3.44,0,0,1-.78-.08,4,4,0,0,1-3.14-4.7l15-75.22H128a4,4,0,0,1-3.47-6l22.08-38.42a84.05,84.05,0,0,0-96.06,7.61A4,4,0,0,1,45.45,97a92,92,0,0,1,108.73-6.15,4,4,0,0,1,1.29,5.34L134.91,132H200A4,4,0,0,1,203.09,133.46Z"/%3E%3C/svg%3E'); +} + +.icon_wifi { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="%23000000" height="32" width="32"%3E%3Cpath d="M136,204a8,8,0,1,1-8-8A8,8,0,0,1,136,204ZM234.54,90.1a168,168,0,0,0-213.08,0,4,4,0,1,0,5.08,6.18,160,160,0,0,1,202.92,0,4,4,0,0,0,5.08-6.18Zm-32.06,35.81a120,120,0,0,0-149,0,4,4,0,0,0,5,6.27,112,112,0,0,1,139,0,4,4,0,0,0,5-6.27Zm-32.13,35.86a72,72,0,0,0-84.7,0,4,4,0,1,0,4.7,6.46,64.07,64.07,0,0,1,75.3,0,4,4,0,0,0,5.58-.87A4,4,0,0,0,170.35,161.77Z"/%3E%3C/svg%3E'); +} + .outside_activities { margin-top: 2rem; } -.outside_activities h3 { +.outside_activities h3, .campsite_services .spiel { font-size: calc(2.2rem + 4vw); font-weight: 600; line-height: .9em; +} + +.outside_activities h3 { margin-bottom: 10rem; } @@ -628,10 +708,6 @@ dt { width: 20%; } -.outside_activities > div:last-child p { - margin-bottom: 1.5em; -} - .campsite_activities { margin-top: 10rem; padding-top: 10rem; @@ -645,6 +721,10 @@ dt { margin-bottom: 5rem; } +.campsite_services.carousel .slick-track { + align-items: center; +} + footer { font-size: 1.5rem; text-align: center; diff --git a/web/templates/admin/layout.gohtml b/web/templates/admin/layout.gohtml index cf850e0..b234ef9 100644 --- a/web/templates/admin/layout.gohtml +++ b/web/templates/admin/layout.gohtml @@ -75,6 +75,9 @@
  • {{( pgettext "Home Page" "title" )}}
  • +
  • + {{( pgettext "Services Page" "title" )}} +
  • {{- end }} diff --git a/web/templates/admin/services/carousel/form.gohtml b/web/templates/admin/services/carousel/form.gohtml new file mode 100644 index 0000000..5e12cc4 --- /dev/null +++ b/web/templates/admin/services/carousel/form.gohtml @@ -0,0 +1,65 @@ + +{{ define "title" -}} + {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/services.slideForm*/ -}} + {{ if .ID}} + {{( pgettext "Edit Carousel Slide" "title" )}} + {{ else }} + {{( pgettext "New Carousel Slide" "title" )}} + {{ end }} +{{- end }} + +{{ define "content" -}} + {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/services.slideForm*/ -}} + {{ template "settings-tabs" "services" }} +
    +

    + {{ if .ID }} + {{( pgettext "Edit Carousel Slide" "title" )}} + {{ else }} + {{( pgettext "New Carousel Slide" "title" )}} + {{ end }} +

    + {{ CSRFInput }} +
    + {{ with .Media -}} + {{ if .Val -}} + + {{- end }} + + {{ template "error-message" . }} + {{- end }} + {{ with .Caption -}} + + {{ template "error-message" . }} + {{- end }} +
    +
    + +
    +
    +{{- end }} diff --git a/web/templates/admin/services/carousel/l10n.gohtml b/web/templates/admin/services/carousel/l10n.gohtml new file mode 100644 index 0000000..6a6c385 --- /dev/null +++ b/web/templates/admin/services/carousel/l10n.gohtml @@ -0,0 +1,36 @@ + +{{ define "title" -}} + {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/services.slideL10nForm*/ -}} + {{printf (pgettext "Translate Carousel Slide to %s" "title") .Locale.Endonym }} +{{- end }} + +{{ define "content" -}} + {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/services.slideL10nForm*/ -}} + {{ template "settings-tabs" "campsiteTypes" }} +
    +

    + {{printf (pgettext "Translate Carousel Slide to %s" "title") .Locale.Endonym }} +

    + {{ CSRFInput }} +
    + {{ with .Caption -}} +
    + {{( pgettext "Caption" "input")}} + {{( gettext "Source:" )}} {{ .Source }}
    + + {{ template "error-message" . }} +
    + {{- end }} +
    +
    + +
    +
    +{{- end }} diff --git a/web/templates/admin/services/index.gohtml b/web/templates/admin/services/index.gohtml new file mode 100644 index 0000000..e4c621a --- /dev/null +++ b/web/templates/admin/services/index.gohtml @@ -0,0 +1,50 @@ + +{{ define "title" -}} + {{( pgettext "Home Page" "title" )}} +{{- end }} + +{{ define "content" -}} + {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/services.servicesIndex*/ -}} + {{ template "settings-tabs" "services" }} +

    {{( pgettext "Carousel" "title" )}}

    + {{( pgettext "Add slide" "action" )}} + {{ if .Slides -}} + + + + + + + + + + + {{ range $slide := .Slides -}} + + + + + + + {{- end }} + +
    {{( pgettext "Image" "header" )}}{{( pgettext "Caption" "header" )}}{{( pgettext "Translations" "campsite type" )}}{{( pgettext "Actions" "campsite type" )}}
    {{ .Caption }} + {{ range .Translations }} + {{ .Endonym }} + {{ end }} + +
    + +
    +
    + {{ else -}} +

    {{( gettext "No slides added yet." )}}

    + {{- end }} +{{- end }} diff --git a/web/templates/public/home.gohtml b/web/templates/public/home.gohtml index db618a8..3c6b852 100644 --- a/web/templates/public/home.gohtml +++ b/web/templates/public/home.gohtml @@ -7,11 +7,11 @@ {{- end }} {{ define "head" -}} - + {{ template "carouselStyle" }} {{- end }} {{ define "content" -}} - {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/app.homePage*/ -}} + {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/home.homePage*/ -}}

    {{ (gettext "The pleasure of camping in the middle of nature…")}}

    @@ -31,8 +31,8 @@

    {{( gettext "Our services")}}

    -

    {{ (gettext "Surroundings")}}

    -
    +

    {{( pgettext "Surroundings" "title" )}}

    +

    {{( gettext "Come and enjoy!")}}

    - - - + {{ template "carouselInit" }} {{- end }} diff --git a/web/templates/public/layout.gohtml b/web/templates/public/layout.gohtml index 826931d..6e20c03 100644 --- a/web/templates/public/layout.gohtml +++ b/web/templates/public/layout.gohtml @@ -62,3 +62,32 @@ {{ define "alternateAnchor" -}} {{ .Endonym }} {{- end }} + +{{ define "carouselStyle" -}} + +{{- end }} + +{{ define "carouselInit" -}} + + + +{{- end }} diff --git a/web/templates/public/services.gohtml b/web/templates/public/services.gohtml new file mode 100644 index 0000000..a9fe6b5 --- /dev/null +++ b/web/templates/public/services.gohtml @@ -0,0 +1,42 @@ + +{{ define "title" -}} + {{( pgettext "Services" "title" )}} +{{- end }} + +{{ define "head" -}} + {{ template "carouselStyle" }} +{{- end }} + +{{ define "content" -}} + {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/services.servicesPage*/ -}} +

    {{( pgettext "Services" "title" )}}

    + + + {{ template "carouselInit" }} + +
    + {{ range .Services -}} +
    +
    {{ .Name }}
    +
    {{ .Description | raw }}
    +
    + {{- end }} +
    +{{- end }}

    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 VNG%|>fYbs~3;h3XfxlsE{|`gtPEP;; literal 0 HcmV?d00001 diff --git a/deploy/add_service.sql b/deploy/add_service.sql new file mode 100644 index 0000000..1bc8827 --- /dev/null +++ b/deploy/add_service.sql @@ -0,0 +1,23 @@ +-- Deploy camper:add_service to pg +-- requires: roles +-- requires: schema_camper +-- requires: service + +begin; + +set search_path to camper, public; + +create or replace function add_service(company integer, icon_name text, name text, description text) returns integer as +$$ + insert into service (company_id, icon_name, name, description) + values (company, icon_name, name, xmlparse (content description)) + returning service_id + ; +$$ + language sql +; + +revoke execute on function add_service(integer, text, text, text) from public; +grant execute on function add_service(integer, text, text, text) to admin; + +commit; diff --git a/deploy/add_services_carousel_slide.sql b/deploy/add_services_carousel_slide.sql new file mode 100644 index 0000000..c919243 --- /dev/null +++ b/deploy/add_services_carousel_slide.sql @@ -0,0 +1,25 @@ +-- Deploy camper:add_services_carousel_slide to pg +-- requires: roles +-- requires: schema_camper +-- requires: services_carousel + +begin; + +set search_path to camper, public; + +create or replace function add_services_carousel_slide(media_id integer, caption text) returns void as +$$ + insert into services_carousel (media_id, caption) + values (media_id, coalesce(caption, '')) + on conflict (media_id) do update + set caption = excluded.caption + returning media_id + ; +$$ + language sql +; + +revoke execute on function add_services_carousel_slide(integer, text) from public; +grant execute on function add_services_carousel_slide(integer, text) to admin; + +commit; diff --git a/deploy/available_icons.sql b/deploy/available_icons.sql new file mode 100644 index 0000000..f585ac6 --- /dev/null +++ b/deploy/available_icons.sql @@ -0,0 +1,30 @@ +-- Deploy camper:available_icons to pg +-- requires: schema_camper +-- requires: icon + +begin; + +insert into camper.icon (icon_name) +values ('baby') + , ('ball') + , ('bicycle') + , ('campfire') + , ('castle') + , ('fridge') + , ('information') + , ('kayak') + , ('outing') + , ('pool') + , ('puzzle') + , ('restaurant') + , ('route') + , ('rv') + , ('shower') + , ('store') + , ('toilet') + , ('washer') + , ('wheelchair') + , ('wifi') +; + +commit; diff --git a/deploy/edit_service.sql b/deploy/edit_service.sql new file mode 100644 index 0000000..bf1ab85 --- /dev/null +++ b/deploy/edit_service.sql @@ -0,0 +1,25 @@ +-- Deploy camper:edit_service to pg +-- requires: roles +-- requires: schema_camper +-- requires: service + +begin; + +set search_path to camper, public; + +create or replace function edit_service(service_id integer, icon_name text, name text, description text) returns void as +$$ + update service + set icon_name = edit_service.icon_name + , name = edit_service.name + , description = xmlparse(content edit_service.description) + where service_id = edit_service.service_id + ; +$$ + language sql +; + +revoke execute on function edit_service(integer, text, text, text) from public; +grant execute on function edit_service(integer, text, text, text) to admin; + +commit; diff --git a/deploy/icon.sql b/deploy/icon.sql new file mode 100644 index 0000000..7c06667 --- /dev/null +++ b/deploy/icon.sql @@ -0,0 +1,17 @@ +-- Deploy camper:icon to pg +-- requires: roles +-- requires: schema_camper + +begin; + +set search_path to camper, public; + +create table icon ( + icon_name text not null primary key +); + +grant select on table icon to guest; +grant select on table icon to employee; +grant select on table icon to admin; + +commit; diff --git a/deploy/remove_services_carousel_slide.sql b/deploy/remove_services_carousel_slide.sql new file mode 100644 index 0000000..daa2afe --- /dev/null +++ b/deploy/remove_services_carousel_slide.sql @@ -0,0 +1,22 @@ +-- Deploy camper:remove_services_carousel_slide to pg +-- requires: roles +-- requires: schema_camper +-- requires: services_carousel +-- requires: services_carousel_i18n + +begin; + +set search_path to camper, public; + +create or replace function remove_services_carousel_slide(media_id integer) returns void as +$$ + delete from services_carousel_i18n where media_id = $1; + delete from services_carousel where media_id = $1; +$$ + language sql +; + +revoke execute on function remove_services_carousel_slide(integer) from public; +grant execute on function remove_services_carousel_slide (integer) to admin; + +commit; diff --git a/deploy/service.sql b/deploy/service.sql new file mode 100644 index 0000000..831991b --- /dev/null +++ b/deploy/service.sql @@ -0,0 +1,58 @@ +-- Deploy camper:service to pg +-- requires: roles +-- requires: schema_camper +-- requires: company +-- requires: icon +-- requires: user_profile + +begin; + +set search_path to camper, public; + +create table service ( + service_id serial primary key, + company_id integer not null references company, + icon_name text not null references icon, + name text not null constraint name_not_empty check(length(trim(name)) > 0), + description xml not null +); + +grant select on table service to guest; +grant select on table service to employee; +grant select, insert, update, delete on table service to admin; + +grant usage on sequence service_service_id_seq to admin; + +alter table service enable row level security; + +create policy guest_ok +on service +for select +using (true) +; + +create policy insert_to_company +on service +for insert +with check ( + company_id in (select company_id from user_profile) +) +; + +create policy update_company +on service +for update +using ( + company_id in (select company_id from user_profile) +) +; + +create policy delete_from_company +on service +for delete +using ( + company_id in (select company_id from user_profile) +) +; + +commit; diff --git a/deploy/service_i18n.sql b/deploy/service_i18n.sql new file mode 100644 index 0000000..324a905 --- /dev/null +++ b/deploy/service_i18n.sql @@ -0,0 +1,23 @@ +-- Deploy camper:service_i18n to pg +-- requires: roles +-- requires: schema_camper +-- requires: service +-- requires: language + +begin; + +set search_path to camper, public; + +create table service_i18n ( + service_id integer not null references service, + lang_tag text not null references language, + name text not null, + description xml not null, + primary key (service_id, lang_tag) +); + +grant select on table service_i18n to guest; +grant select on table service_i18n to employee; +grant select, insert, update, delete on table service_i18n to admin; + +commit; diff --git a/deploy/services_carousel.sql b/deploy/services_carousel.sql new file mode 100644 index 0000000..95a421f --- /dev/null +++ b/deploy/services_carousel.sql @@ -0,0 +1,53 @@ +-- Deploy camper:services_carousel to pg +-- requires: roles +-- requires: schema_public +-- requires: company +-- requires: media +-- requires: user_profile + +begin; + +set search_path to camper, public; + +create table services_carousel ( + media_id integer not null primary key references media, + caption text not null +); + +grant select on table services_carousel to guest; +grant select on table services_carousel to employee; +grant select, insert, update, delete on table services_carousel to admin; + +alter table services_carousel enable row level security; + +create policy guest_ok +on services_carousel +for select +using (true) +; + +create policy insert_to_company +on services_carousel +for insert +with check ( + exists (select 1 from media join user_profile using (company_id) where media.media_id = services_carousel.media_id) +) +; + +create policy update_company +on services_carousel +for update +using ( + exists (select 1 from media join user_profile using (company_id) where media.media_id = services_carousel.media_id) +) +; + +create policy delete_from_company +on services_carousel +for delete +using ( + exists (select 1 from media join user_profile using (company_id) where media.media_id = services_carousel.media_id) +) +; + +commit; diff --git a/deploy/services_carousel_i18n.sql b/deploy/services_carousel_i18n.sql new file mode 100644 index 0000000..53aed69 --- /dev/null +++ b/deploy/services_carousel_i18n.sql @@ -0,0 +1,22 @@ +-- Deploy camper:services_carousel_i18n to pg +-- requires: roles +-- requires: schema_camper +-- requires: services_carousel +-- requires: language + +begin; + +set search_path to camper, public; + +create table services_carousel_i18n ( + media_id integer not null references services_carousel, + lang_tag text not null references language, + caption text not null, + primary key (media_id, lang_tag) +); + +grant select on table services_carousel_i18n to guest; +grant select on table services_carousel_i18n to employee; +grant select, insert, update, delete on table services_carousel_i18n to admin; + +commit; diff --git a/deploy/translate_service.sql b/deploy/translate_service.sql new file mode 100644 index 0000000..5e73288 --- /dev/null +++ b/deploy/translate_service.sql @@ -0,0 +1,25 @@ +-- Deploy camper:translate_service to pg +-- requires: roles +-- requires: schema_camper +-- requires: service_i18n + +begin; + +set search_path to camper, public; + +create or replace function translate_service(service_id integer, lang_tag text, name text, description text) returns void as +$$ + insert into service_i18n (service_id, lang_tag, name, description) + values (service_id, lang_tag, name, xmlparse(content coalesce(description, ''))) + on conflict (service_id, lang_tag) do update + set name = excluded.name + , description = excluded.description + ; +$$ + language sql +; + +revoke execute on function translate_service(integer, text, text, text) from public; +grant execute on function translate_service(integer, text, text, text) to admin; + +commit; diff --git a/deploy/translate_services_carousel_slide.sql b/deploy/translate_services_carousel_slide.sql new file mode 100644 index 0000000..88a9ff0 --- /dev/null +++ b/deploy/translate_services_carousel_slide.sql @@ -0,0 +1,23 @@ +-- Deploy camper:translate_services_carousel_slide to pg +-- requires: roles +-- requires: schema_camper +-- requires: services_carousel_i18n + +begin; + +set search_path to camper, public; + +create or replace function translate_services_carousel_slide(media_id integer, lang_tag text, caption text) returns void as +$$ + insert into services_carousel_i18n (media_id, lang_tag, caption) + values (media_id, lang_tag, coalesce(caption, '')) + on conflict (media_id, lang_tag) do update + set caption = excluded.caption +$$ + language sql +; + +revoke execute on function translate_services_carousel_slide(integer, text, text) from public; +grant execute on function translate_services_carousel_slide(integer, text, text) to admin; + +commit; diff --git a/pkg/app/admin.go b/pkg/app/admin.go index 0485027..e3b8bf2 100644 --- a/pkg/app/admin.go +++ b/pkg/app/admin.go @@ -16,6 +16,7 @@ import ( httplib "dev.tandem.ws/tandem/camper/pkg/http" "dev.tandem.ws/tandem/camper/pkg/locale" "dev.tandem.ws/tandem/camper/pkg/season" + "dev.tandem.ws/tandem/camper/pkg/services" "dev.tandem.ws/tandem/camper/pkg/template" ) @@ -24,6 +25,7 @@ type adminHandler struct { company *company.AdminHandler home *home.AdminHandler season *season.AdminHandler + services *services.AdminHandler } func newAdminHandler(locales locale.Locales) *adminHandler { @@ -32,6 +34,7 @@ func newAdminHandler(locales locale.Locales) *adminHandler { company: company.NewAdminHandler(), home: home.NewAdminHandler(locales), season: season.NewAdminHandler(), + services: services.NewAdminHandler(locales), } } @@ -59,6 +62,8 @@ func (h *adminHandler) Handle(user *auth.User, company *auth.Company, conn *data h.home.Handler(user, company, conn).ServeHTTP(w, r) case "seasons": h.season.Handler(user, company, conn).ServeHTTP(w, r) + case "services": + h.services.Handler(user, company, conn).ServeHTTP(w, r) case "": switch r.Method { case http.MethodGet: diff --git a/pkg/app/public.go b/pkg/app/public.go index 99dbd0a..9b3a3fa 100644 --- a/pkg/app/public.go +++ b/pkg/app/public.go @@ -13,18 +13,21 @@ import ( "dev.tandem.ws/tandem/camper/pkg/database" "dev.tandem.ws/tandem/camper/pkg/home" httplib "dev.tandem.ws/tandem/camper/pkg/http" + "dev.tandem.ws/tandem/camper/pkg/services" "dev.tandem.ws/tandem/camper/pkg/template" ) type publicHandler struct { home *home.PublicHandler campsite *campsite.PublicHandler + services *services.PublicHandler } func newPublicHandler() *publicHandler { return &publicHandler{ home: home.NewPublicHandler(), campsite: campsite.NewPublicHandler(), + services: services.NewPublicHandler(), } } @@ -37,6 +40,8 @@ func (h *publicHandler) Handler(user *auth.User, company *auth.Company, conn *da h.home.Handler(user, company, conn).ServeHTTP(w, r) case "campsites": h.campsite.Handler(user, company, conn).ServeHTTP(w, r) + case "services": + h.services.Handler(user, company, conn).ServeHTTP(w, r) case "surroundings": surroundingsHandler(user, company, conn).ServeHTTP(w, r) default: diff --git a/pkg/services/admin.go b/pkg/services/admin.go new file mode 100644 index 0000000..9397a43 --- /dev/null +++ b/pkg/services/admin.go @@ -0,0 +1,64 @@ +/* + * SPDX-FileCopyrightText: 2023 jordi fita mas + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package services + +import ( + "net/http" + + "dev.tandem.ws/tandem/camper/pkg/auth" + "dev.tandem.ws/tandem/camper/pkg/database" + httplib "dev.tandem.ws/tandem/camper/pkg/http" + "dev.tandem.ws/tandem/camper/pkg/locale" + "dev.tandem.ws/tandem/camper/pkg/template" +) + +type AdminHandler struct { + locales locale.Locales +} + +func NewAdminHandler(locales locale.Locales) *AdminHandler { + return &AdminHandler{locales} +} + +func (h *AdminHandler) Handler(user *auth.User, company *auth.Company, conn *database.Conn) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + var head string + head, r.URL.Path = httplib.ShiftPath(r.URL.Path) + + switch head { + case "": + switch r.Method { + case http.MethodGet: + serveHomeIndex(w, r, user, company, conn) + default: + httplib.MethodNotAllowed(w, r, http.MethodGet) + } + case "slides": + h.carouselHandler(user, company, conn).ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +func serveHomeIndex(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn) { + slides, err := collectSlideEntries(r.Context(), company, conn) + if err != nil { + panic(err) + } + page := &servicesIndex{ + Slides: slides, + } + page.MustRender(w, r, user, company) +} + +type servicesIndex struct { + Slides []*slideEntry +} + +func (page *servicesIndex) MustRender(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company) { + template.MustRenderAdmin(w, r, user, company, "services/index.gohtml", page) +} diff --git a/pkg/services/carousel.go b/pkg/services/carousel.go new file mode 100644 index 0000000..04c4c21 --- /dev/null +++ b/pkg/services/carousel.go @@ -0,0 +1,311 @@ +/* + * SPDX-FileCopyrightText: 2023 jordi fita mas + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package services + +import ( + "context" + "io" + "net/http" + "strconv" + + "github.com/jackc/pgx/v4" + + "dev.tandem.ws/tandem/camper/pkg/auth" + "dev.tandem.ws/tandem/camper/pkg/database" + "dev.tandem.ws/tandem/camper/pkg/form" + httplib "dev.tandem.ws/tandem/camper/pkg/http" + "dev.tandem.ws/tandem/camper/pkg/locale" + "dev.tandem.ws/tandem/camper/pkg/template" +) + +func (h *AdminHandler) carouselHandler(user *auth.User, company *auth.Company, conn *database.Conn) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + var head string + head, r.URL.Path = httplib.ShiftPath(r.URL.Path) + + switch head { + case "": + switch r.Method { + case http.MethodPost: + addSlide(w, r, user, company, conn) + default: + httplib.MethodNotAllowed(w, r, http.MethodGet) + } + case "new": + switch r.Method { + case http.MethodGet: + f := newSlideForm() + f.MustRender(w, r, user, company) + default: + httplib.MethodNotAllowed(w, r, http.MethodGet) + } + default: + id, err := strconv.Atoi(head) + if err != nil { + http.NotFound(w, r) + } + f := newSlideForm() + if err := f.FillFromDatabase(r.Context(), conn, id); err != nil { + if database.ErrorIsNotFound(err) { + http.NotFound(w, r) + return + } + panic(err) + } + + var langTag string + langTag, r.URL.Path = httplib.ShiftPath(r.URL.Path) + + switch langTag { + case "": + switch r.Method { + case http.MethodGet: + f.MustRender(w, r, user, company) + case http.MethodPut: + editSlide(w, r, user, company, conn, f) + case http.MethodDelete: + deleteSlide(w, r, user, conn, id) + default: + httplib.MethodNotAllowed(w, r, http.MethodGet, http.MethodPut) + } + default: + loc, ok := h.locales.Get(langTag) + if !ok { + http.NotFound(w, r) + return + } + l10n := newSlideL10nForm(f, loc) + if err := l10n.FillFromDatabase(r.Context(), conn); err != nil { + panic(err) + } + switch r.Method { + case http.MethodGet: + l10n.MustRender(w, r, user, company) + case http.MethodPut: + editSlideL10n(w, r, user, company, conn, l10n) + default: + httplib.MethodNotAllowed(w, r, http.MethodGet, http.MethodPut) + } + } + } + }) +} + +type carouselSlide struct { + Media string + Caption string +} + +func mustCollectCarouselSlides(ctx context.Context, company *auth.Company, conn *database.Conn, loc *locale.Locale) []*carouselSlide { + rows, err := conn.Query(ctx, ` + select coalesce(i18n.caption, slide.caption) as l10_caption + , media.path + from services_carousel as slide + join media using (media_id) + left join services_carousel_i18n as i18n on i18n.media_id = slide.media_id and lang_tag = $1 + where media.company_id = $2 + `, loc.Language, company.ID) + if err != nil { + panic(err) + } + defer rows.Close() + + var carousel []*carouselSlide + for rows.Next() { + slide := &carouselSlide{} + err = rows.Scan(&slide.Caption, &slide.Media) + if err != nil { + panic(err) + } + carousel = append(carousel, slide) + } + if rows.Err() != nil { + panic(rows.Err()) + } + + return carousel +} + +type slideEntry struct { + carouselSlide + ID int + Translations []*translation +} + +type translation struct { + Language string + Endonym string + Missing bool +} + +func collectSlideEntries(ctx context.Context, company *auth.Company, conn *database.Conn) ([]*slideEntry, error) { + rows, err := conn.Query(ctx, ` + select media_id + , media.path + , caption + , array_agg((lang_tag, endonym, not exists (select 1 from services_carousel_i18n as i18n where i18n.media_id = services_carousel.media_id and i18n.lang_tag = language.lang_tag)) order by endonym) + from services_carousel + join media using (media_id) + join company using (company_id) + , language + where lang_tag <> default_lang_tag + and language.selectable + and media.company_id = $1 + group by media_id + , media.path + , caption + order by caption + `, pgx.QueryResultFormats{pgx.BinaryFormatCode}, company.ID) + if err != nil { + return nil, err + } + defer rows.Close() + + var slides []*slideEntry + for rows.Next() { + slide := &slideEntry{} + var translations database.RecordArray + if err = rows.Scan(&slide.ID, &slide.Media, &slide.Caption, &translations); err != nil { + return nil, err + } + for _, el := range translations.Elements { + slide.Translations = append(slide.Translations, &translation{ + el.Fields[0].Get().(string), + el.Fields[1].Get().(string), + el.Fields[2].Get().(bool), + }) + } + slides = append(slides, slide) + } + + return slides, nil +} + +func addSlide(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn) { + f := newSlideForm() + editSlide(w, r, user, company, conn, f) +} + +func editSlide(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, f *slideForm) { + f.process(w, r, user, company, false, func(ctx context.Context) { + bytes := f.MustReadAllMedia() + if bytes == nil { + conn.MustExec(ctx, "select add_services_carousel_slide($1, $2)", f.ID, f.Caption) + } else { + tx := conn.MustBegin(ctx) + defer tx.Rollback(ctx) + f.ID = tx.MustGetInt(ctx, "select add_media($1, $2, $3, $4)", company.ID, f.Media.Filename(), f.Media.ContentType, bytes) + tx.MustExec(ctx, "select add_services_carousel_slide($1, $2)", f.ID, f.Caption) + tx.MustCommit(ctx) + } + }) +} + +func deleteSlide(w http.ResponseWriter, r *http.Request, user *auth.User, conn *database.Conn, id int) { + if err := user.VerifyCSRFToken(r); err != nil { + http.Error(w, err.Error(), http.StatusForbidden) + return + } + conn.MustExec(r.Context(), "select remove_services_carousel_slide($1)", id) + httplib.Redirect(w, r, "/admin/services", http.StatusSeeOther) +} + +type slideForm struct { + ID int + Media *form.File + Caption *form.Input +} + +func newSlideForm() *slideForm { + return &slideForm{ + Media: &form.File{ + Name: "media", + MaxSize: 1 << 20, + }, + Caption: &form.Input{ + Name: "caption", + }, + } +} + +func (f *slideForm) FillFromDatabase(ctx context.Context, conn *database.Conn, id int) error { + f.ID = id + row := conn.QueryRow(ctx, ` + select caption + , media.path + from services_carousel + join media using (media_id) + where media_id = $1 + `, id) + return row.Scan(&f.Caption.Val, &f.Media.Val) +} + +func (f *slideForm) process(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, mediaRequired bool, act func(ctx context.Context)) { + if err := f.Parse(w, r); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + defer f.Close() + if err := user.VerifyCSRFToken(r); err != nil { + http.Error(w, err.Error(), http.StatusForbidden) + return + } + if !f.Valid(user.Locale, mediaRequired) { + if !httplib.IsHTMxRequest(r) { + w.WriteHeader(http.StatusUnprocessableEntity) + } + f.MustRender(w, r, user, company) + return + } + act(r.Context()) + httplib.Redirect(w, r, "/admin/services", http.StatusSeeOther) +} + +func (f *slideForm) Parse(w http.ResponseWriter, r *http.Request) error { + maxSize := f.Media.MaxSize + 1024 + r.Body = http.MaxBytesReader(w, r.Body, maxSize) + if err := r.ParseMultipartForm(maxSize); err != nil { + return err + } + f.Caption.FillValue(r) + if err := f.Media.FillValue(r); err != nil { + return err + } + return nil +} + +func (f *slideForm) Close() error { + return f.Media.Close() +} + +func (f *slideForm) Valid(l *locale.Locale, mediaRequired bool) bool { + v := form.NewValidator(l) + if f.HasMediaFile() { + v.CheckImageFile(f.Media, l.GettextNoop("File must be a valid PNG or JPEG image.")) + } else { + v.Check(f.Media, !mediaRequired, l.GettextNoop("Slide image can not be empty.")) + } + return v.AllOK +} + +func (f *slideForm) MustRender(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company) { + template.MustRenderAdmin(w, r, user, company, "services/carousel/form.gohtml", f) +} + +func (f *slideForm) HasMediaFile() bool { + return f.Media.HasData() +} + +func (f *slideForm) MustReadAllMedia() []byte { + if !f.HasMediaFile() { + return nil + } + bytes, err := io.ReadAll(f.Media) + if err != nil { + panic(err) + } + return bytes +} diff --git a/pkg/services/l10n.go b/pkg/services/l10n.go new file mode 100644 index 0000000..791966a --- /dev/null +++ b/pkg/services/l10n.go @@ -0,0 +1,79 @@ +/* + * SPDX-FileCopyrightText: 2023 jordi fita mas + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package services + +import ( + "context" + "net/http" + + "dev.tandem.ws/tandem/camper/pkg/auth" + "dev.tandem.ws/tandem/camper/pkg/database" + "dev.tandem.ws/tandem/camper/pkg/form" + httplib "dev.tandem.ws/tandem/camper/pkg/http" + "dev.tandem.ws/tandem/camper/pkg/locale" + "dev.tandem.ws/tandem/camper/pkg/template" +) + +type slideL10nForm struct { + Locale *locale.Locale + ID int + Caption *form.L10nInput +} + +func newSlideL10nForm(f *slideForm, loc *locale.Locale) *slideL10nForm { + return &slideL10nForm{ + Locale: loc, + ID: f.ID, + Caption: f.Caption.L10nInput(), + } +} + +func (l10n *slideL10nForm) FillFromDatabase(ctx context.Context, conn *database.Conn) error { + row := conn.QueryRow(ctx, ` + select coalesce(i18n.caption, '') as l10n_caption + from services_carousel + left join services_carousel_i18n as i18n on services_carousel.media_id = i18n.media_id and i18n.lang_tag = $1 + where services_carousel.media_id = $2 + `, l10n.Locale.Language, l10n.ID) + return row.Scan(&l10n.Caption.Val) +} + +func (l10n *slideL10nForm) MustRender(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company) { + template.MustRenderAdmin(w, r, user, company, "services/carousel/l10n.gohtml", l10n) +} + +func editSlideL10n(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, l10n *slideL10nForm) { + if err := l10n.Parse(r); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := user.VerifyCSRFToken(r); err != nil { + http.Error(w, err.Error(), http.StatusForbidden) + return + } + if !l10n.Valid(user.Locale) { + if !httplib.IsHTMxRequest(r) { + w.WriteHeader(http.StatusUnprocessableEntity) + } + l10n.MustRender(w, r, user, company) + return + } + conn.MustExec(r.Context(), "select translate_services_carousel_slide($1, $2, $3)", l10n.ID, l10n.Locale.Language, l10n.Caption) + httplib.Redirect(w, r, "/admin/services", http.StatusSeeOther) +} + +func (l10n *slideL10nForm) Parse(r *http.Request) error { + if err := r.ParseForm(); err != nil { + return err + } + l10n.Caption.FillValue(r) + return nil +} + +func (l10n *slideL10nForm) Valid(l *locale.Locale) bool { + v := form.NewValidator(l) + return v.AllOK +} diff --git a/pkg/services/public.go b/pkg/services/public.go new file mode 100644 index 0000000..6f33740 --- /dev/null +++ b/pkg/services/public.go @@ -0,0 +1,96 @@ +/* + * SPDX-FileCopyrightText: 2023 jordi fita mas + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package services + +import ( + "context" + "net/http" + + "dev.tandem.ws/tandem/camper/pkg/auth" + "dev.tandem.ws/tandem/camper/pkg/database" + httplib "dev.tandem.ws/tandem/camper/pkg/http" + "dev.tandem.ws/tandem/camper/pkg/locale" + "dev.tandem.ws/tandem/camper/pkg/template" +) + +type PublicHandler struct { +} + +func NewPublicHandler() *PublicHandler { + return &PublicHandler{} +} + +func (h *PublicHandler) Handler(user *auth.User, company *auth.Company, conn *database.Conn) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + var head string + head, r.URL.Path = httplib.ShiftPath(r.URL.Path) + switch head { + case "": + switch r.Method { + case http.MethodGet: + home := newServicesPage() + home.MustRender(w, r, user, company, conn) + default: + httplib.MethodNotAllowed(w, r, http.MethodGet) + } + default: + http.NotFound(w, r) + } + }) +} + +type servicesPage struct { + *template.PublicPage + Services []*service + Carousel []*carouselSlide +} + +func newServicesPage() *servicesPage { + return &servicesPage{PublicPage: template.NewPublicPage()} +} + +func (p *servicesPage) MustRender(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn) { + p.Setup(r, user, company, conn) + p.Services = mustCollectServices(r.Context(), company, conn, user.Locale) + p.Carousel = mustCollectCarouselSlides(r.Context(), company, conn, user.Locale) + template.MustRenderPublic(w, r, user, company, "services.gohtml", p) +} + +type service struct { + IconName string + Name string + Description string +} + +func mustCollectServices(ctx context.Context, company *auth.Company, conn *database.Conn, loc *locale.Locale) []*service { + rows, err := conn.Query(ctx, ` + select icon_name + , coalesce(i18n.name, service.name) as l10_name + , coalesce(i18n.description, service.description)::text as l10_description + from service + left join service_i18n as i18n on service.service_id = i18n.service_id and lang_tag = $1 + where service.company_id = $2 + `, loc.Language, company.ID) + if err != nil { + panic(err) + } + defer rows.Close() + + var items []*service + for rows.Next() { + item := &service{} + err = rows.Scan(&item.IconName, &item.Name, &item.Description) + if err != nil { + panic(err) + } + items = append(items, item) + } + if rows.Err() != nil { + panic(rows.Err()) + } + + return items +} diff --git a/po/ca.po b/po/ca.po index 6967c81..e782ef2 100644 --- a/po/ca.po +++ b/po/ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: camper\n" "Report-Msgid-Bugs-To: jordi@tandem.blog\n" -"POT-Creation-Date: 2023-09-16 23:43+0200\n" +"POT-Creation-Date: 2023-09-17 03:28+0200\n" "PO-Revision-Date: 2023-07-22 23:45+0200\n" "Last-Translator: jordi fita mas \n" "Language-Team: Catalan \n" @@ -18,7 +18,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: web/templates/public/home.gohtml:6 web/templates/public/layout.gohtml:28 +#: web/templates/public/services.gohtml:6 +#: web/templates/public/services.gohtml:15 +msgctxt "title" +msgid "Services" +msgstr "Serveis" + +#: web/templates/public/services.gohtml:18 +msgid "The campsite offers many different services." +msgstr "El càmping disposa de diversos serveis." + +#: web/templates/public/home.gohtml:6 web/templates/public/layout.gohtml:29 msgctxt "title" msgid "Home" msgstr "Inici" @@ -37,8 +47,11 @@ msgid "Our services" msgstr "Els nostres serveis" #: web/templates/public/home.gohtml:34 +#: web/templates/public/surroundings.gohtml:6 +#: web/templates/public/surroundings.gohtml:10 +msgctxt "title" msgid "Surroundings" -msgstr "Entorn" +msgstr "L’entorn" #: web/templates/public/home.gohtml:37 msgid "Located in Alta Garrotxa, between the Pyrenees and the Costa Brava." @@ -60,12 +73,6 @@ msgstr "Descobreix l’entorn" msgid "Come and enjoy!" msgstr "Vine a gaudir!" -#: web/templates/public/surroundings.gohtml:6 -#: web/templates/public/surroundings.gohtml:10 -msgctxt "title" -msgid "Surroundings" -msgstr "L’entorn" - #: web/templates/public/surroundings.gohtml:13 msgctxt "title" msgid "What to Do Outside the Campsite?" @@ -124,8 +131,8 @@ msgstr "Caiac" msgid "There are several points where you can go by kayak, from sections of the Ter river as well as on the coast…." msgstr "Hi ha diversos punts on poder anar amb caiac, des de trams del riu Ter com també a la costa…." -#: web/templates/public/layout.gohtml:11 web/templates/public/layout.gohtml:23 -#: web/templates/public/layout.gohtml:58 +#: web/templates/public/layout.gohtml:11 web/templates/public/layout.gohtml:24 +#: web/templates/public/layout.gohtml:59 msgid "Campsite Montagut" msgstr "Càmping Montagut" @@ -133,7 +140,7 @@ msgstr "Càmping Montagut" msgid "Skip to main content" msgstr "Salta al contingut principal" -#: web/templates/public/layout.gohtml:32 +#: web/templates/public/layout.gohtml:33 msgid "Singular Lodges" msgstr "Allotjaments singulars" @@ -172,6 +179,7 @@ msgstr "Etiqueta" #: web/templates/admin/campsite/form.gohtml:71 #: web/templates/admin/campsite/type/form.gohtml:77 #: web/templates/admin/season/form.gohtml:65 +#: web/templates/admin/services/carousel/form.gohtml:58 #: web/templates/admin/home/carousel/form.gohtml:58 msgctxt "action" msgid "Update" @@ -180,6 +188,7 @@ msgstr "Actualitza" #: web/templates/admin/campsite/form.gohtml:73 #: web/templates/admin/campsite/type/form.gohtml:79 #: web/templates/admin/season/form.gohtml:67 +#: web/templates/admin/services/carousel/form.gohtml:60 #: web/templates/admin/home/carousel/form.gohtml:60 msgctxt "action" msgid "Add" @@ -250,6 +259,7 @@ msgid "Name" msgstr "Nom" #: web/templates/admin/campsite/type/form.gohtml:59 +#: web/templates/admin/services/carousel/form.gohtml:39 #: web/templates/admin/home/carousel/form.gohtml:39 msgctxt "input" msgid "Cover image" @@ -280,6 +290,7 @@ msgid "Name" msgstr "Nom" #: web/templates/admin/campsite/type/index.gohtml:19 +#: web/templates/admin/services/index.gohtml:20 #: web/templates/admin/home/index.gohtml:20 msgctxt "campsite type" msgid "Translations" @@ -297,18 +308,21 @@ msgstr "Traducció del tipus d’allotjament a %s" #: web/templates/admin/campsite/type/l10n.gohtml:22 #: web/templates/admin/campsite/type/l10n.gohtml:34 +#: web/templates/admin/services/carousel/l10n.gohtml:22 #: web/templates/admin/home/carousel/l10n.gohtml:22 msgid "Source:" msgstr "Origen:" #: web/templates/admin/campsite/type/l10n.gohtml:24 #: web/templates/admin/campsite/type/l10n.gohtml:37 +#: web/templates/admin/services/carousel/l10n.gohtml:24 #: web/templates/admin/home/carousel/l10n.gohtml:24 msgctxt "input" msgid "Translation:" msgstr "Traducció:" #: web/templates/admin/campsite/type/l10n.gohtml:46 +#: web/templates/admin/services/carousel/l10n.gohtml:33 #: web/templates/admin/home/carousel/l10n.gohtml:33 msgctxt "action" msgid "Translate" @@ -385,6 +399,85 @@ msgctxt "action" msgid "Login" msgstr "Entra" +#: web/templates/admin/services/carousel/form.gohtml:8 +#: web/templates/admin/services/carousel/form.gohtml:27 +#: web/templates/admin/home/carousel/form.gohtml:8 +#: web/templates/admin/home/carousel/form.gohtml:27 +msgctxt "title" +msgid "Edit Carousel Slide" +msgstr "Edició de la diapositiva del carrusel" + +#: web/templates/admin/services/carousel/form.gohtml:10 +#: web/templates/admin/services/carousel/form.gohtml:29 +#: web/templates/admin/home/carousel/form.gohtml:10 +#: web/templates/admin/home/carousel/form.gohtml:29 +msgctxt "title" +msgid "New Carousel Slide" +msgstr "Nova diapositiva del carrusel" + +#: web/templates/admin/services/carousel/form.gohtml:48 +#: web/templates/admin/services/carousel/l10n.gohtml:21 +#: web/templates/admin/home/carousel/form.gohtml:48 +#: web/templates/admin/home/carousel/l10n.gohtml:21 +msgctxt "input" +msgid "Caption" +msgstr "Llegenda" + +#: web/templates/admin/services/carousel/l10n.gohtml:7 +#: web/templates/admin/services/carousel/l10n.gohtml:15 +#: web/templates/admin/home/carousel/l10n.gohtml:7 +#: web/templates/admin/home/carousel/l10n.gohtml:15 +msgctxt "title" +msgid "Translate Carousel Slide to %s" +msgstr "Traducció de la diapositiva del carrusel a %s" + +#: web/templates/admin/services/index.gohtml:6 +#: web/templates/admin/layout.gohtml:76 web/templates/admin/home/index.gohtml:6 +msgctxt "title" +msgid "Home Page" +msgstr "Pàgina d’inici" + +#: web/templates/admin/services/index.gohtml:12 +#: web/templates/admin/home/index.gohtml:12 +msgctxt "title" +msgid "Carousel" +msgstr "Carrusel" + +#: web/templates/admin/services/index.gohtml:13 +#: web/templates/admin/home/index.gohtml:13 +msgctxt "action" +msgid "Add slide" +msgstr "Afegeix diapositiva" + +#: web/templates/admin/services/index.gohtml:18 +#: web/templates/admin/home/index.gohtml:18 +msgctxt "header" +msgid "Image" +msgstr "Imatge" + +#: web/templates/admin/services/index.gohtml:19 +#: web/templates/admin/home/index.gohtml:19 +msgctxt "header" +msgid "Caption" +msgstr "Llegenda" + +#: web/templates/admin/services/index.gohtml:21 +#: web/templates/admin/home/index.gohtml:21 +msgctxt "campsite type" +msgid "Actions" +msgstr "Accions" + +#: web/templates/admin/services/index.gohtml:40 +#: web/templates/admin/home/index.gohtml:40 +msgctxt "action" +msgid "Delete" +msgstr "Esborra" + +#: web/templates/admin/services/index.gohtml:48 +#: web/templates/admin/home/index.gohtml:48 +msgid "No slides added yet." +msgstr "No s’ha afegit cap diapositiva encara." + #: web/templates/admin/profile.gohtml:6 web/templates/admin/profile.gohtml:12 #: web/templates/admin/layout.gohtml:29 msgctxt "title" @@ -505,68 +598,11 @@ msgctxt "action" msgid "Logout" msgstr "Surt" -#: web/templates/admin/layout.gohtml:76 web/templates/admin/home/index.gohtml:6 +#: web/templates/admin/layout.gohtml:79 +#, fuzzy msgctxt "title" -msgid "Home Page" -msgstr "Pàgina d’inici" - -#: web/templates/admin/home/carousel/form.gohtml:8 -#: web/templates/admin/home/carousel/form.gohtml:27 -msgctxt "title" -msgid "Edit Carousel Slide" -msgstr "Edició de la diapositiva del carrusel" - -#: web/templates/admin/home/carousel/form.gohtml:10 -#: web/templates/admin/home/carousel/form.gohtml:29 -msgctxt "title" -msgid "New Carousel Slide" -msgstr "Nova diapositiva del carrusel" - -#: web/templates/admin/home/carousel/form.gohtml:48 -#: web/templates/admin/home/carousel/l10n.gohtml:21 -msgctxt "input" -msgid "Caption" -msgstr "Llegenda" - -#: web/templates/admin/home/carousel/l10n.gohtml:7 -#: web/templates/admin/home/carousel/l10n.gohtml:15 -msgctxt "title" -msgid "Translate Carousel Slide to %s" -msgstr "Traducció de la diapositiva del carrusel a %s" - -#: web/templates/admin/home/index.gohtml:12 -msgctxt "title" -msgid "Carousel" -msgstr "Carrusel" - -#: web/templates/admin/home/index.gohtml:13 -msgctxt "action" -msgid "Add slide" -msgstr "Afegeix diapositiva" - -#: web/templates/admin/home/index.gohtml:18 -msgctxt "header" -msgid "Image" -msgstr "Imatge" - -#: web/templates/admin/home/index.gohtml:19 -msgctxt "header" -msgid "Caption" -msgstr "Llegenda" - -#: web/templates/admin/home/index.gohtml:21 -msgctxt "campsite type" -msgid "Actions" -msgstr "Accions" - -#: web/templates/admin/home/index.gohtml:40 -msgctxt "action" -msgid "Delete" -msgstr "Esborra" - -#: web/templates/admin/home/index.gohtml:48 -msgid "No slides added yet." -msgstr "No s’ha afegit cap diapositiva encara." +msgid "Services Page" +msgstr "Serveis" #: web/templates/admin/media/index.gohtml:6 #: web/templates/admin/media/index.gohtml:12 @@ -637,11 +673,12 @@ msgstr "La confirmació no es correspon amb la contrasenya." msgid "Selected language is not valid." msgstr "L’idioma escollit no és vàlid." -#: pkg/app/user.go:253 pkg/campsite/types/admin.go:296 pkg/home/carousel.go:287 +#: pkg/app/user.go:253 pkg/campsite/types/admin.go:296 +#: pkg/services/carousel.go:287 pkg/home/carousel.go:287 msgid "File must be a valid PNG or JPEG image." msgstr "El fitxer has de ser una imatge PNG o JPEG vàlida." -#: pkg/app/admin.go:47 +#: pkg/app/admin.go:50 msgid "Access forbidden" msgstr "Accés prohibit" @@ -665,6 +702,10 @@ msgstr "No podeu deixar el color en blanc." msgid "This color is not valid. It must be like #123abc." msgstr "Aquest color no és vàlid. Hauria de ser similar a #123abc." +#: pkg/services/carousel.go:289 pkg/home/carousel.go:289 +msgid "Slide image can not be empty." +msgstr "No podeu deixar la imatge de la diapositiva en blanc." + #: pkg/company/admin.go:186 msgid "Selected country is not valid." msgstr "El país escollit no és vàlid." @@ -729,14 +770,13 @@ msgstr "No podeu deixar el format del número de factura en blanc." msgid "Cross-site request forgery detected." msgstr "S’ha detectat un intent de falsificació de petició a llocs creuats." -#: pkg/home/carousel.go:289 -msgid "Slide image can not be empty." -msgstr "No podeu deixar la imatge de la diapositiva en blanc." - #: pkg/media/admin.go:164 msgid "Uploaded file can not be empty." msgstr "No podeu deixar el fitxer del mèdia en blanc." +#~ msgid "Surroundings" +#~ msgstr "Entorn" + #~ msgid "Legend" #~ msgstr "Llegenda" diff --git a/po/es.po b/po/es.po index 4f24595..75bf5b8 100644 --- a/po/es.po +++ b/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: camper\n" "Report-Msgid-Bugs-To: jordi@tandem.blog\n" -"POT-Creation-Date: 2023-09-16 23:55+0200\n" +"POT-Creation-Date: 2023-09-17 03:28+0200\n" "PO-Revision-Date: 2023-07-22 23:46+0200\n" "Last-Translator: jordi fita mas \n" "Language-Team: Spanish \n" @@ -18,7 +18,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: web/templates/public/home.gohtml:6 web/templates/public/layout.gohtml:28 +#: web/templates/public/services.gohtml:6 +#: web/templates/public/services.gohtml:15 +msgctxt "title" +msgid "Services" +msgstr "Servicios" + +#: web/templates/public/services.gohtml:18 +msgid "The campsite offers many different services." +msgstr "El camping dispone de varios servicios." + +#: web/templates/public/home.gohtml:6 web/templates/public/layout.gohtml:29 msgctxt "title" msgid "Home" msgstr "Inicio" @@ -37,8 +47,11 @@ msgid "Our services" msgstr "Nuestros servicios" #: web/templates/public/home.gohtml:34 +#: web/templates/public/surroundings.gohtml:6 +#: web/templates/public/surroundings.gohtml:10 +msgctxt "title" msgid "Surroundings" -msgstr "Entorno" +msgstr "El entorno" #: web/templates/public/home.gohtml:37 msgid "Located in Alta Garrotxa, between the Pyrenees and the Costa Brava." @@ -60,12 +73,6 @@ msgstr "Descubre el entorno" msgid "Come and enjoy!" msgstr "¡Ven a disfrutar!" -#: web/templates/public/surroundings.gohtml:6 -#: web/templates/public/surroundings.gohtml:10 -msgctxt "title" -msgid "Surroundings" -msgstr "El entorno" - #: web/templates/public/surroundings.gohtml:13 msgctxt "title" msgid "What to Do Outside the Campsite?" @@ -125,8 +132,8 @@ msgstr "Kayak" msgid "There are several points where you can go by kayak, from sections of the Ter river as well as on the coast…." msgstr "Hay diversos puntos dónde podéis ir en kayak, desde tramos del río Ter como también en la costa…." -#: web/templates/public/layout.gohtml:11 web/templates/public/layout.gohtml:23 -#: web/templates/public/layout.gohtml:58 +#: web/templates/public/layout.gohtml:11 web/templates/public/layout.gohtml:24 +#: web/templates/public/layout.gohtml:59 msgid "Campsite Montagut" msgstr "Camping Montagut" @@ -134,7 +141,7 @@ msgstr "Camping Montagut" msgid "Skip to main content" msgstr "Saltar al contenido principal" -#: web/templates/public/layout.gohtml:32 +#: web/templates/public/layout.gohtml:33 msgid "Singular Lodges" msgstr "Alojamientos singulares" @@ -173,6 +180,7 @@ msgstr "Etiqueta" #: web/templates/admin/campsite/form.gohtml:71 #: web/templates/admin/campsite/type/form.gohtml:77 #: web/templates/admin/season/form.gohtml:65 +#: web/templates/admin/services/carousel/form.gohtml:58 #: web/templates/admin/home/carousel/form.gohtml:58 msgctxt "action" msgid "Update" @@ -181,6 +189,7 @@ msgstr "Actualizar" #: web/templates/admin/campsite/form.gohtml:73 #: web/templates/admin/campsite/type/form.gohtml:79 #: web/templates/admin/season/form.gohtml:67 +#: web/templates/admin/services/carousel/form.gohtml:60 #: web/templates/admin/home/carousel/form.gohtml:60 msgctxt "action" msgid "Add" @@ -251,6 +260,7 @@ msgid "Name" msgstr "Nombre" #: web/templates/admin/campsite/type/form.gohtml:59 +#: web/templates/admin/services/carousel/form.gohtml:39 #: web/templates/admin/home/carousel/form.gohtml:39 msgctxt "input" msgid "Cover image" @@ -281,6 +291,7 @@ msgid "Name" msgstr "Nombre" #: web/templates/admin/campsite/type/index.gohtml:19 +#: web/templates/admin/services/index.gohtml:20 #: web/templates/admin/home/index.gohtml:20 msgctxt "campsite type" msgid "Translations" @@ -298,18 +309,21 @@ msgstr "Traducción de tipo de alojamiento a %s" #: web/templates/admin/campsite/type/l10n.gohtml:22 #: web/templates/admin/campsite/type/l10n.gohtml:34 +#: web/templates/admin/services/carousel/l10n.gohtml:22 #: web/templates/admin/home/carousel/l10n.gohtml:22 msgid "Source:" msgstr "Origen:" #: web/templates/admin/campsite/type/l10n.gohtml:24 #: web/templates/admin/campsite/type/l10n.gohtml:37 +#: web/templates/admin/services/carousel/l10n.gohtml:24 #: web/templates/admin/home/carousel/l10n.gohtml:24 msgctxt "input" msgid "Translation:" msgstr "Traducción" #: web/templates/admin/campsite/type/l10n.gohtml:46 +#: web/templates/admin/services/carousel/l10n.gohtml:33 #: web/templates/admin/home/carousel/l10n.gohtml:33 msgctxt "action" msgid "Translate" @@ -386,6 +400,85 @@ msgctxt "action" msgid "Login" msgstr "Entrar" +#: web/templates/admin/services/carousel/form.gohtml:8 +#: web/templates/admin/services/carousel/form.gohtml:27 +#: web/templates/admin/home/carousel/form.gohtml:8 +#: web/templates/admin/home/carousel/form.gohtml:27 +msgctxt "title" +msgid "Edit Carousel Slide" +msgstr "Edición de la diapositiva del carrusel" + +#: web/templates/admin/services/carousel/form.gohtml:10 +#: web/templates/admin/services/carousel/form.gohtml:29 +#: web/templates/admin/home/carousel/form.gohtml:10 +#: web/templates/admin/home/carousel/form.gohtml:29 +msgctxt "title" +msgid "New Carousel Slide" +msgstr "Nueva diapositiva del carrusel" + +#: web/templates/admin/services/carousel/form.gohtml:48 +#: web/templates/admin/services/carousel/l10n.gohtml:21 +#: web/templates/admin/home/carousel/form.gohtml:48 +#: web/templates/admin/home/carousel/l10n.gohtml:21 +msgctxt "input" +msgid "Caption" +msgstr "Leyenda" + +#: web/templates/admin/services/carousel/l10n.gohtml:7 +#: web/templates/admin/services/carousel/l10n.gohtml:15 +#: web/templates/admin/home/carousel/l10n.gohtml:7 +#: web/templates/admin/home/carousel/l10n.gohtml:15 +msgctxt "title" +msgid "Translate Carousel Slide to %s" +msgstr "Traducción de la diapositiva de carrusel a %s" + +#: web/templates/admin/services/index.gohtml:6 +#: web/templates/admin/layout.gohtml:76 web/templates/admin/home/index.gohtml:6 +msgctxt "title" +msgid "Home Page" +msgstr "Página de inicio" + +#: web/templates/admin/services/index.gohtml:12 +#: web/templates/admin/home/index.gohtml:12 +msgctxt "title" +msgid "Carousel" +msgstr "Carrusel" + +#: web/templates/admin/services/index.gohtml:13 +#: web/templates/admin/home/index.gohtml:13 +msgctxt "action" +msgid "Add slide" +msgstr "Añadir diapositiva" + +#: web/templates/admin/services/index.gohtml:18 +#: web/templates/admin/home/index.gohtml:18 +msgctxt "header" +msgid "Image" +msgstr "Imagen" + +#: web/templates/admin/services/index.gohtml:19 +#: web/templates/admin/home/index.gohtml:19 +msgctxt "header" +msgid "Caption" +msgstr "Leyenda" + +#: web/templates/admin/services/index.gohtml:21 +#: web/templates/admin/home/index.gohtml:21 +msgctxt "campsite type" +msgid "Actions" +msgstr "Acciones" + +#: web/templates/admin/services/index.gohtml:40 +#: web/templates/admin/home/index.gohtml:40 +msgctxt "action" +msgid "Delete" +msgstr "Borrar" + +#: web/templates/admin/services/index.gohtml:48 +#: web/templates/admin/home/index.gohtml:48 +msgid "No slides added yet." +msgstr "No se ha añadido ninguna diapositiva todavía." + #: web/templates/admin/profile.gohtml:6 web/templates/admin/profile.gohtml:12 #: web/templates/admin/layout.gohtml:29 msgctxt "title" @@ -506,68 +599,11 @@ msgctxt "action" msgid "Logout" msgstr "Salir" -#: web/templates/admin/layout.gohtml:76 web/templates/admin/home/index.gohtml:6 +#: web/templates/admin/layout.gohtml:79 +#, fuzzy msgctxt "title" -msgid "Home Page" -msgstr "Página de inicio" - -#: web/templates/admin/home/carousel/form.gohtml:8 -#: web/templates/admin/home/carousel/form.gohtml:27 -msgctxt "title" -msgid "Edit Carousel Slide" -msgstr "Edición de la diapositiva del carrusel" - -#: web/templates/admin/home/carousel/form.gohtml:10 -#: web/templates/admin/home/carousel/form.gohtml:29 -msgctxt "title" -msgid "New Carousel Slide" -msgstr "Nueva diapositiva del carrusel" - -#: web/templates/admin/home/carousel/form.gohtml:48 -#: web/templates/admin/home/carousel/l10n.gohtml:21 -msgctxt "input" -msgid "Caption" -msgstr "Leyenda" - -#: web/templates/admin/home/carousel/l10n.gohtml:7 -#: web/templates/admin/home/carousel/l10n.gohtml:15 -msgctxt "title" -msgid "Translate Carousel Slide to %s" -msgstr "Traducción de la diapositiva de carrusel a %s" - -#: web/templates/admin/home/index.gohtml:12 -msgctxt "title" -msgid "Carousel" -msgstr "Carrusel" - -#: web/templates/admin/home/index.gohtml:13 -msgctxt "action" -msgid "Add slide" -msgstr "Añadir diapositiva" - -#: web/templates/admin/home/index.gohtml:18 -msgctxt "header" -msgid "Image" -msgstr "Imagen" - -#: web/templates/admin/home/index.gohtml:19 -msgctxt "header" -msgid "Caption" -msgstr "Leyenda" - -#: web/templates/admin/home/index.gohtml:21 -msgctxt "campsite type" -msgid "Actions" -msgstr "Acciones" - -#: web/templates/admin/home/index.gohtml:40 -msgctxt "action" -msgid "Delete" -msgstr "Borrar" - -#: web/templates/admin/home/index.gohtml:48 -msgid "No slides added yet." -msgstr "No se ha añadido ninguna diapositiva todavía." +msgid "Services Page" +msgstr "Servicios" #: web/templates/admin/media/index.gohtml:6 #: web/templates/admin/media/index.gohtml:12 @@ -638,11 +674,12 @@ msgstr "La confirmación no se corresponde con la contraseña." msgid "Selected language is not valid." msgstr "El idioma escogido no es válido." -#: pkg/app/user.go:253 pkg/campsite/types/admin.go:296 pkg/home/carousel.go:287 +#: pkg/app/user.go:253 pkg/campsite/types/admin.go:296 +#: pkg/services/carousel.go:287 pkg/home/carousel.go:287 msgid "File must be a valid PNG or JPEG image." msgstr "El archivo tiene que ser una imagen PNG o JPEG válida." -#: pkg/app/admin.go:47 +#: pkg/app/admin.go:50 msgid "Access forbidden" msgstr "Acceso prohibido" @@ -666,6 +703,10 @@ msgstr "No podéis dejar el color en blanco." msgid "This color is not valid. It must be like #123abc." msgstr "Este color no es válido. Tiene que ser parecido a #123abc." +#: pkg/services/carousel.go:289 pkg/home/carousel.go:289 +msgid "Slide image can not be empty." +msgstr "No podéis dejar la imagen de la diapositiva en blanco." + #: pkg/company/admin.go:186 msgid "Selected country is not valid." msgstr "El país escogido no es válido." @@ -730,14 +771,13 @@ msgstr "No podéis dejar el formato de número de factura en blanco." msgid "Cross-site request forgery detected." msgstr "Se ha detectado un intento de falsificación de petición en sitios cruzados." -#: pkg/home/carousel.go:289 -msgid "Slide image can not be empty." -msgstr "No podéis dejar la imagen de la diapositiva en blanco." - #: pkg/media/admin.go:164 msgid "Uploaded file can not be empty." msgstr "No podéis dejar el archivo del medio en blanco." +#~ msgid "Surroundings" +#~ msgstr "Entorno" + #~ msgid "Legend" #~ msgstr "Leyenda" diff --git a/revert/add_service.sql b/revert/add_service.sql new file mode 100644 index 0000000..9fa33d8 --- /dev/null +++ b/revert/add_service.sql @@ -0,0 +1,7 @@ +-- Revert camper:add_service from pg + +begin; + +drop function if exists camper.add_service(integer, text, text, text); + +commit; diff --git a/revert/add_services_carousel_slide.sql b/revert/add_services_carousel_slide.sql new file mode 100644 index 0000000..3af4135 --- /dev/null +++ b/revert/add_services_carousel_slide.sql @@ -0,0 +1,7 @@ +-- Revert camper:add_services_carousel_slide from pg + +begin; + +drop function if exists camper.add_services_carousel_slide(integer, text); + +commit; diff --git a/revert/available_icons.sql b/revert/available_icons.sql new file mode 100644 index 0000000..5dc0667 --- /dev/null +++ b/revert/available_icons.sql @@ -0,0 +1,7 @@ +-- Revert camper:available_icons from pg + +begin; + +delete from camper.icon; + +commit; diff --git a/revert/edit_service.sql b/revert/edit_service.sql new file mode 100644 index 0000000..8f6ea58 --- /dev/null +++ b/revert/edit_service.sql @@ -0,0 +1,7 @@ +-- Revert camper:edit_service from pg + +begin; + +drop function if exists camper.edit_service(integer, text, text, text); + +commit; diff --git a/revert/icon.sql b/revert/icon.sql new file mode 100644 index 0000000..8345f52 --- /dev/null +++ b/revert/icon.sql @@ -0,0 +1,7 @@ +-- Revert camper:icon from pg + +begin; + +drop table if exists camper.icon; + +commit; diff --git a/revert/remove_services_carousel_slide.sql b/revert/remove_services_carousel_slide.sql new file mode 100644 index 0000000..90b9824 --- /dev/null +++ b/revert/remove_services_carousel_slide.sql @@ -0,0 +1,7 @@ +-- Revert camper:remove_services_carousel_slide from pg + +begin; + +drop function if exists camper.remove_services_carousel_slide(integer); + +commit; diff --git a/revert/service.sql b/revert/service.sql new file mode 100644 index 0000000..2612be7 --- /dev/null +++ b/revert/service.sql @@ -0,0 +1,7 @@ +-- Revert camper:service from pg + +begin; + +drop table if exists camper.service; + +commit; diff --git a/revert/service_i18n.sql b/revert/service_i18n.sql new file mode 100644 index 0000000..204c79a --- /dev/null +++ b/revert/service_i18n.sql @@ -0,0 +1,7 @@ +-- Revert camper:service_i18n from pg + +begin; + +drop table if exists camper.service_i18n; + +commit; diff --git a/revert/services_carousel.sql b/revert/services_carousel.sql new file mode 100644 index 0000000..7a1991a --- /dev/null +++ b/revert/services_carousel.sql @@ -0,0 +1,7 @@ +-- Revert camper:services_carousel from pg + +begin; + +drop table if exists camper.services_carousel; + +commit; diff --git a/revert/services_carousel_i18n.sql b/revert/services_carousel_i18n.sql new file mode 100644 index 0000000..39d4cfa --- /dev/null +++ b/revert/services_carousel_i18n.sql @@ -0,0 +1,7 @@ +-- Revert camper:services_carousel_i18n from pg + +begin; + +drop table if exists camper.services_carousel_i18n; + +commit; diff --git a/revert/translate_service.sql b/revert/translate_service.sql new file mode 100644 index 0000000..1bf7b4c --- /dev/null +++ b/revert/translate_service.sql @@ -0,0 +1,7 @@ +-- Revert camper:translate_service from pg + +begin; + +drop function if exists camper.translate_service(integer, text, text, text); + +commit; diff --git a/revert/translate_services_carousel_slide.sql b/revert/translate_services_carousel_slide.sql new file mode 100644 index 0000000..51f6ac4 --- /dev/null +++ b/revert/translate_services_carousel_slide.sql @@ -0,0 +1,7 @@ +-- Revert camper:translate_services_carousel_slide from pg + +begin; + +drop function if exists camper.translate_services_carousel_slide(integer, text, text); + +commit; diff --git a/sqitch.plan b/sqitch.plan index cbd5391..0ff0533 100644 --- a/sqitch.plan +++ b/sqitch.plan @@ -64,3 +64,15 @@ home_carousel_i18n [roles schema_camper home_carousel language] 2023-09-13T23:22 add_home_carousel_slide [roles schema_camper home_carousel] 2023-09-14T17:49:21Z jordi fita mas # Add function to create slides for the home carousel translate_home_carousel_slide [roles schema_camper home_carousel_i18n] 2023-09-14T18:17:36Z jordi fita mas # Add function to translate a home carousel slider remove_home_carousel_slide [roles schema_camper home_carousel home_carousel_i18n] 2023-09-14T21:57:48Z jordi fita mas # Add function to remove sliders from the home carousel +services_carousel [roles schema_public company media user_profile] 2023-09-16T22:37:47Z jordi fita mas # Add relation for services’ image carousel +services_carousel_i18n [roles schema_camper services_carousel language] 2023-09-16T22:42:14Z jordi fita mas # Add relation for services carousel translations +add_services_carousel_slide [roles schema_camper services_carousel] 2023-09-16T22:45:49Z jordi fita mas # Add function to create slides for the services carousel +translate_services_carousel_slide [roles schema_camper services_carousel_i18n] 2023-09-16T22:46:43Z jordi fita mas # Add function to translate a services carousel slide +remove_services_carousel_slide [roles schema_camper services_carousel services_carousel_i18n] 2023-09-16T22:47:54Z jordi fita mas # Add function to remove slides from the services carousel +icon [roles schema_camper] 2023-09-16T23:11:48Z jordi fita mas # Add relation for icon +available_icons [schema_camper icon] 2023-09-16T23:15:03Z jordi fita mas # Add the list of available icons +service [roles schema_camper company icon user_profile] 2023-09-16T23:48:19Z jordi fita mas # Add relation of services definition +add_service [roles schema_camper service] 2023-09-17T00:00:00Z jordi fita mas # Add function to create services +edit_service [roles schema_camper service] 2023-09-17T00:01:16Z jordi fita mas # Add function to edit services +service_i18n [roles schema_camper service language] 2023-09-17T00:13:42Z jordi fita mas # Add relation for service translations +translate_service [roles schema_camper service_i18n] 2023-09-17T00:17:00Z jordi fita mas # Add function to translate a service diff --git a/test/add_service.sql b/test/add_service.sql new file mode 100644 index 0000000..9e9b206 --- /dev/null +++ b/test/add_service.sql @@ -0,0 +1,55 @@ +-- Test add_service +set client_min_messages to warning; +create extension if not exists pgtap; +reset client_min_messages; + +begin; + +select plan(12); + +set search_path to camper, public; + +select has_function('camper', 'add_service', array['integer', 'text', 'text', 'text']); +select function_lang_is('camper', 'add_service', array['integer', 'text', 'text', 'text'], 'sql'); +select function_returns('camper', 'add_service', array['integer', 'text', 'text', 'text'], 'integer'); +select isnt_definer('camper', 'add_service', array['integer', 'text', 'text', 'text']); +select volatility_is('camper', 'add_service', array['integer', 'text', 'text', 'text'], 'volatile'); +select function_privs_are('camper', 'add_service', array ['integer', 'text', 'text', 'text'], 'guest', array[]::text[]); +select function_privs_are('camper', 'add_service', array ['integer', 'text', 'text', 'text'], 'employee', array[]::text[]); +select function_privs_are('camper', 'add_service', array ['integer', 'text', 'text', 'text'], 'admin', array['EXECUTE']); +select function_privs_are('camper', 'add_service', array ['integer', 'text', 'text', 'text'], 'authenticator', array[]::text[]); + + +set client_min_messages to warning; +truncate service cascade; +truncate company cascade; +reset client_min_messages; + +insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag) +values (1, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca') + , (2, 'Company 4', 'XX234', '', '666-666-666', 'b@b', '', '', '', '', '', 'FR', 'USD', 'ca') +; + +select lives_ok( + $$ select add_service(1, 'information', 'Info', '