Commit Graph

144 Commits

Author SHA1 Message Date
jordi fita mas daf6326652 Change the footer to a single column in table, rather than on mobile
Otherwise, the four columns are very difficult to read, and cause
horizontal overflow.
2024-02-03 01:03:08 +01:00
jordi fita mas 593004d0c9 Remove redundant right margin form slick list on mobile 2024-02-03 00:33:24 +01:00
jordi fita mas 63e33fa253 Fix booking field inside campsite’s page on mobile 2024-02-03 00:29:37 +01:00
jordi fita mas 4c4b9d8d02 Make submenus collapsible on mobile too
Had to change the link to the current language version of the page by a
button, to prevent following a link when trying to expand the submenu.

At first i did this with an `onclick="return false"` bullshit, but the
link was the wrong thing to do here, and it was there only to satisfy
Google et al. They will have to with the links in head.

Also made the link and buttons larger to make it easier to hit them with
finger.
2024-02-03 00:16:29 +01:00
jordi fita mas 64d94b5f35 Align text in surroundings on mobile 2024-02-02 21:40:41 +01:00
jordi fita mas 43505fecbd Reduce outside activities’ h3 bottom margin on mobile 2024-02-02 21:37:56 +01:00
jordi fita mas 97fb88cc02 Guard against departure date not having min and max night attributes 2024-02-02 02:55:09 +01:00
jordi fita mas 33a1f0f4e2 Use Date.getTime instead of relaying on implicit conversion
Otherwise, fucking IntelliJ does not shut up about imaginary problems.
2024-02-02 02:51:38 +01:00
jordi fita mas 28adeb38fc Half Leaflet’s zoom delta
With a map the size of ours, it always seemed like things were either
too zoomed out or too zoomed in.
2024-02-02 02:46:59 +01:00
jordi fita mas 70eb007ddd Revert Leaflet’s maxBounds and its viscosity
They were commented out by error: when changing the SVG handling code,
had to “look for” a stray polygon that was outside the image’s bounded
area.
2024-02-02 02:45:47 +01:00
oriol carbonell pujolàs fcbbc5c22a Fix sizes of the campground map and its legend 2024-02-02 02:39:55 +01:00
oriol carbonell pujolàs 5e053034a5 Move carousel arrows out of the way on mobile
Carrousels have a first slide that is mostly text without any background color,
and on mobile the arrows looked like where “erasing” the text.
2024-02-02 02:38:31 +01:00
oriol carbonell pujolàs 0b93a4c989 Remove order from slick-list
It was there from when the carousel was a flex; no longer used
2024-02-02 02:37:53 +01:00
oriol carbonell pujolàs 91339bec8b Leave direction for home slides on mobile and increase bottom padding
The change to column was from when the button and the text were both on the slide,
but now it only made the text stick to the top, which is the reverse of what we
wanted, but had to increase the space between the text and the booking button.
2024-02-02 02:30:54 +01:00
oriol carbonell pujolàs 61dbe5cf38 Set top-most address in a column with mobile screens 2024-02-02 02:28:45 +01:00
oriol carbonell pujolàs 18adbac5c3 Remove sticky position from header with mobile screens
Too much vertical space used just for that, otherwise.
2024-02-02 02:27:23 +01:00
jordi fita mas 4adad7fa7d Replace min_nights from campsite_type_costs to range in campsite_type
Customer told us that the minimum number of nights is per campsite type,
not per season.  And he wants this, along with the maximum number of
nights, in order to limit the range of departure dates that guests can
choose when booking.
2024-01-31 23:06:45 +01:00
jordi fita mas 4f04d973c2 Dynamically set min and max to arrival and departure date inputs
The departure must be at list one day after the arrival, but no longer
than seven, due to campground’s policy.
2024-01-31 20:00:38 +01:00
jordi fita mas a3040cb195 Use var(--accent) for zone color 2024-01-31 15:37:03 +01:00
jordi fita mas 516a9d9be8 Fix the font-size of #campground_map
Leaflet assumes that 1rem = 16px, and sets its wrapper’s font size to
.75rem to get 12px.  However, in our CSS 1rem = 10px.
2024-01-31 15:13:35 +01:00
jordi fita mas d198bad91b Add a controlled layer group for the zones on the map
It seems that we have to highlight the map zones too.  On the previous
website, they had a mouseover effect that displayed a tooltip, but here
we can not do that because we use the mouse to select accommodations.

This is just a test to see whether Oriol likes how it is shown, thus the
red is likely to change to something else more pleasant to look at.
2024-01-31 15:12:11 +01:00
jordi fita mas 8c9308f1d3 Do not bring layer to front when highlighting a map accommodation
This does nothing but bring useless work to the browser, that has to
move the SVG group to the top for nothing, as the accommodations do not
overlap anything else.
2024-01-31 15:02:20 +01:00
jordi fita mas 6f78ad944f Do not set campground_map’s height via JavaScript
It already has a height set via CSS; no need to overwrite it.
2024-01-31 15:01:13 +01:00
oriol carbonell pujolàs 33100a6149 Adjust accomodation on home to show seven in a grid 2024-01-29 19:43:07 +01:00
jordi fita mas 1de4042d91 Handle path and rects in map
There are many installations on the map that are drawn with rect
instead of path.  I could transform them with Inkscape, but i finally
found out about DOMMatrix, that helps me a lot to convert points, as
it can parse the values of the `transform` attribute.

I also saw that SVGGraphicElements has getCTM() and getScreenCTM(), but
neither of them worked for me: the resulting transformation was “shrunk”
on the map (i.e., like it was scaled down).
2024-01-29 17:57:14 +01:00
jordi fita mas e320636ce1 Replace <div>s in legend with more semantically meaningful elements 2024-01-29 14:02:31 +01:00
oriol carbonell pujolàs 72f9e25140 Add map legend 2024-01-29 13:42:24 +01:00
jordi fita mas eeaa3b415e Add amenities section and public page
This is more or less the same as the campsites, as public information
goes, but for buildings and other amenities that the camping provides
that are not campsites.
2024-01-27 22:51:41 +01:00
jordi fita mas e6ab3f2d09 Change campsite info row to columns on small screens 2024-01-26 22:57:22 +01:00
jordi fita mas c284230436 Add public pages for each individual accommodation
A small page with a brief description, carousel, and feature list of
each individual accommodation.

Most of the relations and functions for carousel and features are like
the ones for campsite types, but i had to use the accommodation’s label
to find them, because they do not have slugs; i did not even though
these would be public, and they already have a label, although not
unique for all companies, like UUID slugs are.
2024-01-26 22:27:54 +01:00
jordi fita mas 8d49857dae Add a polygon around each accommodation on the public map
I can not use <a> in that map because Leaflet handles the mouse over
before the anchors sees it, thus it is impossible to click on them; i
have to use a Leaflet layer.

Fortunately, i can just use the <path>’s coordinates as
the polygon points, because with CRS.Simple the coordinates map to
pixel, except for the reversed Y/latitude coordinate. Unfortunately,
<path> coordinates are not straightforward to get: I have to follow the
drawing coordinates, taking into account the current transformation
(CTM), and keeping the last point around for relative coordinates.
Bézier curves are simplified to a straight line from start to end.

There is one single accommodation that started with a relative move
command (m), which apparently have to be treated as an absolute
move (M), but subsequent pairs are treated as relative coordinates[0].

It was easier for me to convert that relative move to absolute and add
a relative lineto command (l) to the next pair.

For now, all i do is highlight the accommodation and zoom it on click,
because i do not know how i should the accommodation’s information.

[0]: https://www.w3.org/TR/SVG11/paths.html#PathDataMovetoCommands
2024-01-25 04:28:51 +01:00
jordi fita mas 623f0af2ab Fill the immediate path inside map’s anchors, and remove one extra group
In the map i added in e3503187d, paths around each accommodation
inherited the fill and stroke from the group, thus i could just override
that fill at the anchor level, but the current map sets the fill to each
accommodation’s path, party because the text is not a path too, partly
because Affinity is a visual tool only and does not give a shit about
mark up.

If we keep the text in a group, however, we can set the fill of the area
using CSS too, although it is not nice due to `!important`, but still.
There was a plot, however, #93, that had the area in a group too, and
i had to remove that group manually.
2024-01-25 01:26:02 +01:00
jordi fita mas 267ff54c60 Use same background color for selected icon than for selected language 2024-01-24 19:35:38 +01:00
jordi fita mas 7a759fe7df Remove flex: 1 from icon input’s elements to flush half-full rows left 2024-01-24 19:33:59 +01:00
jordi fita mas eae03f0bc4 Add cabin, flask_gear, grate_droplet, shirt, shop, and tent icons 2024-01-24 19:32:01 +01:00
jordi fita mas b2bd183380 Update area icon’s SVG 2024-01-24 19:15:32 +01:00
jordi fita mas 45dd3f4d15 Update ecofriendly icon’s SVG 2024-01-24 19:11:22 +01:00
oriol carbonell pujolàs 58fb39b0c7 Update weelchair icon’s SVG 2024-01-24 18:14:19 +01:00
jordi fita mas 9053f7ce92 Put back cp_ prefix for map’s accommodations and hide trees and zones
It seems that the prefix got removed in one of the edits.

Also, Affinity does not give a fuck to what classes we give to the
elements, and just removes them, thus .guest-only no longer matches, and
had to hide the layers by id.  Hope they hold this time.
2024-01-24 14:42:47 +01:00
jordi fita mas 5d45de7ef8 Replace kayak icon and add sailboat
There is no kayaking, canoe, or raft icon in Font Awesome[0], so i redid
the kayak icon in more or less the same style, but shittier, of course.

Oriol also asked me to add the sailboat, that may replace the use of
kayak.

[0]: https://github.com/FortAwesome/Font-Awesome/issues/10772
2024-01-24 12:11:58 +01:00
jordi fita mas 2c045fe7ec Replace plot icon SVG 2024-01-24 11:27:59 +01:00
jordi fita mas b67aae0936 Replace campfire icon with a better one, and add barbecue
We were using what was very clearly a campfire as the icon for the
barbecue service, when we first replaced it with a Font Awesome icon
we chose an icon that was neither campfire nor barbecue (flame-curved),
but now Oriol wanted one that left no doubt it was a barbecue.

Instead of replacing the campfire SVG with that of the barbecue, i have
chosen a campfire image from Font Awesome for our icon, and added a
separate icon for that service.
2024-01-24 11:21:08 +01:00
jordi fita mas 7f865232e0 Remove fill="currentColor" from icons.css
It’s of no use whatsoever when the SVG is used as background image, and
it was only defined in those i extracted from the TTF with FontForge
anyway.
2024-01-24 10:57:54 +01:00
jordi fita mas 28ab22bc22 Reduce size of icon input’s buttons 2024-01-24 00:40:19 +01:00
jordi fita mas eb59babd86 Replace icons with designs from Font Awesome
Except for area, kayak, and plot, that do not have any equivalent in
Font Awesome.
2024-01-24 00:30:09 +01:00
jordi fita mas f514f9132e Add ad management for surroundings
They only want a single ad (for now, i guess).
2024-01-23 14:53:15 +01:00
jordi fita mas aa64e2e6e5 Replace fieldset:nth-child(3) with fieldset.campsite-options
Previously, the only type with options was plots, that was always the
third fieldset, which was the wrong thing to hardcode, but it was done
in a hurry.  Now there are more types with options, so we have to do it
properly.
2024-01-22 03:57:11 +01:00
jordi fita mas 26cc46c7b0 Add breadcrumb to all admin pages
I tried to use ../, and ../../ to make the routes relatives, but it
would not work well because the same page would have two URLs, one
ending with slash and another without, and the relative links would be
different on each case.
2024-01-21 22:44:04 +01:00
jordi fita mas 64dc533949 Remove the extra <div> when saving content from CKEditor
I need to have a single top-level element in order to serialize to XML
when returning the editor’s content back to the text area, because,
unlike PostgreSQL, XMLSerializer only works with XML documents.

I added a <div> because this is the least “semantic” block element there
is, but Oriol seems to have trouble in services when trying to align
services using a grid due to this extra div.

Now i still use the div to serialize to XML, but then remove that
top-level element from the output string by stripping out its label. I
 can not be sure that all browsers would serialize the <div> in the
 same way, thus i can not use fixed indices in call to substring.
2024-01-21 21:04:51 +01:00
jordi fita mas cf527ce070 Add the application’s version to the footer
This is mostly because it is required for the “Digital Kit”, but it also
works in our favor because now i can version the URL to the static
resources.

Go 1.18 adds the info from git if the package is build from a git
repository, but this is not the case in OBS, so i instead relay on a
constant for the version number.  This constant is “updated” by Debian’s
rules, mostly due to the discussion in [0].

[0]: https://github.com/golang/go/issues/22706
2024-01-21 20:50:16 +01:00