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.
2023-09-17 01:42:16 +00:00
|
|
|
<!--
|
|
|
|
SPDX-FileCopyrightText: 2023 jordi fita mas <jordi@tandem.blog>
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
-->
|
|
|
|
{{ define "title" -}}
|
2023-09-20 23:57:14 +00:00
|
|
|
{{( pgettext "Services Page" "title" )}}
|
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.
2023-09-17 01:42:16 +00:00
|
|
|
{{- end }}
|
|
|
|
|
2024-01-21 21:44:04 +00:00
|
|
|
{{ define "breadcrumb" -}}
|
|
|
|
{{- end }}
|
|
|
|
|
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.
2023-09-17 01:42:16 +00:00
|
|
|
{{ define "content" -}}
|
|
|
|
{{- /*gotype: dev.tandem.ws/tandem/camper/pkg/services.servicesIndex*/ -}}
|
|
|
|
<h2>{{( pgettext "Carousel" "title" )}}</h2>
|
|
|
|
<a href="/admin/services/slides/new">{{( pgettext "Add slide" "action" )}}</a>
|
|
|
|
{{ if .Slides -}}
|
2023-12-20 18:52:14 +00:00
|
|
|
<form id="slide-index"
|
|
|
|
class="sortable"
|
|
|
|
data-hx-post="/admin/services/slides/order"
|
|
|
|
data-hx-trigger="end"
|
|
|
|
data-hx-select="#slide-index"
|
|
|
|
data-hx-swap="outerHTML"
|
|
|
|
>
|
|
|
|
{{ CSRFInput }}
|
|
|
|
<table>
|
|
|
|
<thead>
|
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.
2023-09-17 01:42:16 +00:00
|
|
|
<tr>
|
2023-12-20 18:52:14 +00:00
|
|
|
<th scope="col">{{( pgettext "Image" "header" )}}</th>
|
|
|
|
<th scope="col">{{( pgettext "Caption" "header" )}}</th>
|
|
|
|
<th scope="col">{{( pgettext "Actions" "header" )}}</th>
|
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.
2023-09-17 01:42:16 +00:00
|
|
|
</tr>
|
2023-12-20 18:52:14 +00:00
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{{ $confirm := ( gettext "Are you sure you wish to delete this slide?" )}}
|
|
|
|
{{ range $slide := .Slides -}}
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<span class="handle"></span>
|
|
|
|
<input type="hidden" name="media_id" value="{{ .ID }}">
|
|
|
|
<a href="/admin/services/slides/{{ .ID }}"><img src="{{ .Media }}" alt=""></a>
|
|
|
|
</td>
|
|
|
|
<td><a href="/admin/services/slides/{{ .ID }}">{{ .Caption }}</a></td>
|
|
|
|
<td>
|
2024-01-16 17:32:02 +00:00
|
|
|
<button data-hx-delete="/admin/services/slides/{{ .ID }}"
|
|
|
|
data-hx-confirm="{{ $confirm }}"
|
|
|
|
data-hx-headers='{ {{ CSRFHeader }} }'>
|
|
|
|
{{( pgettext "Delete" "action" )}}
|
|
|
|
</button>
|
2023-12-20 18:52:14 +00:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
{{- end }}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</form>
|
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.
2023-09-17 01:42:16 +00:00
|
|
|
{{ else -}}
|
|
|
|
<p>{{( gettext "No slides added yet." )}}</p>
|
|
|
|
{{- end }}
|
2023-09-25 18:10:33 +00:00
|
|
|
|
|
|
|
<h2>{{( pgettext "Services" "title" )}}</h2>
|
2023-09-26 14:51:35 +00:00
|
|
|
<a href="/admin/services/new">{{( pgettext "Add service" "action" )}}</a>
|
2023-09-25 18:10:33 +00:00
|
|
|
{{ if .Services -}}
|
2024-01-13 00:15:24 +00:00
|
|
|
<form id="service-index"
|
|
|
|
class="sortable"
|
|
|
|
data-hx-post="/admin/services/order"
|
|
|
|
data-hx-trigger="end"
|
|
|
|
data-hx-select="#service-index"
|
|
|
|
data-hx-swap="outerHTML"
|
|
|
|
>
|
|
|
|
{{ CSRFInput }}
|
|
|
|
<table class="services">
|
|
|
|
<thead>
|
2023-09-25 18:10:33 +00:00
|
|
|
<tr>
|
2024-01-13 00:15:24 +00:00
|
|
|
<th scope="col" class="sr-only">{{( pgettext "Order" "header" )}}</th>
|
|
|
|
<th scope="col">{{( pgettext "Service" "header" )}}</th>
|
|
|
|
<th scope="col">{{( pgettext "Actions" "header" )}}</th>
|
2023-09-25 18:10:33 +00:00
|
|
|
</tr>
|
2024-01-13 00:15:24 +00:00
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{{ $confirm := ( gettext "Are you sure you wish to delete this service?" )}}
|
|
|
|
{{ range .Services -}}
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<input type="hidden" name="service_id" value="{{ .ID }}">
|
|
|
|
<span class="handle"></span>
|
|
|
|
</td>
|
|
|
|
<td class="icon_{{ .Icon }}"><a href="{{ .URL }}">{{ .Name }}</a></td>
|
|
|
|
<td>
|
2024-01-16 17:32:02 +00:00
|
|
|
<button data-hx-delete="{{ .URL }}"
|
|
|
|
data-hx-confirm="{{ $confirm }}"
|
|
|
|
data-hx-headers='{ {{ CSRFHeader }} }'>
|
|
|
|
{{( pgettext "Delete" "action" )}}
|
|
|
|
</button>
|
2024-01-13 00:15:24 +00:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
{{- end }}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</form>
|
2023-09-25 18:10:33 +00:00
|
|
|
{{ else -}}
|
|
|
|
<p>{{( gettext "No services added yet." )}}</p>
|
|
|
|
{{- end }}
|
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.
2023-09-17 01:42:16 +00:00
|
|
|
{{- end }}
|