Compare commits

..

34 Commits

Author SHA1 Message Date
Thomas Jund 8d3aea750d ma-cnil: remove custom field on error styles (#75382)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-18 14:36:37 +02:00
Thomas Jund ea42cdd9d4 orleans: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund aef9a81ec1 grandlyon-glc: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 19ef373a47 loire-atlantique-cd44: remove custom field on error styles (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 9c56c0aebb hautes-alpes-territoire: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 6d57f4e0aa lille: remove useless custom field on error styles (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund a6bde3a167 miribel: use custom color for $error-color (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 9eac902ce0 sables-d-olonne-2022: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 542ee91974 hautes-alpes-cd05-2020: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 1374796e6f lille-metropole-2022: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 5d68714dd1 toulouse-2022: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund f9daae1bf4 izi-ici: remove unused margin-left on div.error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 205595fb1f villejuif: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 01d726a21f dsfr: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund d02c543c6d metz-metropole-2019: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 35359ddb18 cnil: remove background image of div.error(#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund 29e4f34929 villeurbanne-2018: remove custom .error font-size (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund b3ebbafa07 ac-versailles: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund e48e359385 nantes: use custom style for field on error (#75382) 2023-04-18 14:36:37 +02:00
Thomas Jund e93c53a9b3 css: improve styles of form field on error (#75382) 2023-04-18 14:33:40 +02:00
Frédéric Péters d825a27899 scss: keep reveal checkbox aligned with password input on login page (#76683)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-17 13:15:14 +02:00
Frédéric Péters 8a915839ca toulouse: add pagination count as option for catalog cell (#76628)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-17 09:29:30 +02:00
Frédéric Péters a7c92f9846 toulouse: put style into scss file (#76628) 2023-04-17 09:29:30 +02:00
Frédéric Péters 7490a7ae3c toulouse: fix typography of no results text (#76628) 2023-04-17 09:29:30 +02:00
Frédéric Péters ef89000784 toulouse: load select2 from combo (#76628) 2023-04-17 09:29:30 +02:00
Frédéric Péters 4ad24fb2a5 toulouse: reformat catalog cell (#76628) 2023-04-17 09:29:30 +02:00
Frédéric Péters a2fe91ec79 toulouse: import maelis catalog cell (#76628) 2023-04-17 09:29:30 +02:00
Frédéric Péters a75db1d0d3 alpes-maritimes-2022: fix typo in tracking code text (#76574)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-13 09:50:16 +02:00
Corentin Sechet c32774d314 finistere: change buttons order(#75981)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-12 18:00:51 +02:00
Corentin Sechet b8916a9eb4 finistere: put cell pictures in title (#75981) 2023-04-12 18:00:51 +02:00
Frédéric Péters 14ab82d431 universite-toulon: make form pages use full width on mobile (#76413)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-11 11:47:40 +02:00
Frédéric Péters edda9fc631 universite-toulon: switch login page to column layout on mobile (#76410)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-07 19:29:56 +02:00
Thomas Jund 68b641c60b html: add cell--body class to login password registration block (#76294)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-07 07:09:04 +02:00
Thomas NOËL 5ce3c48d42 nanterre: remplace call center number (#75314)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2023-04-06 15:59:31 +02:00
18 changed files with 323 additions and 40 deletions

View File

@ -58,6 +58,29 @@ h1#logo.has-logo {
}
}
.gru-content {
div.link-list-cell,
div.wcsformsofcategorycell {
position: relative;
h2:first-child {
padding-left: 2.5rem;
}
&.has-asset-picture picture {
position: absolute;
top: 0;
left: 0.5rem;
padding: 0.7rem 0;
img {
padding: 0;
height: 2.1rem;
}
}
}
}
input, input[type="search"], textarea, select {
&:not([readonly]) {
&:hover, &:focus {

View File

@ -71,7 +71,7 @@ $wcs-step-color: $blue-3;
$wcs-step-border-bottom: 1px solid $wcs-step-color;
$wcs-step-current-border-bottom: 1px solid $primary-color;
$wcs-step-marker-size: 1.8em;
$buttons-order: previous, cancel (grow), submit;
$buttons-order: previous, submit (grow), cancel;
$footer-background: $blue-3;
$footer-color: black;

View File

@ -88,7 +88,7 @@ form ul.errorlist {
.widget-with-error {
input, textarea, select {
border: 1px solid $primary-color;
}
}
div.error {
color: $primary-color;
}

View File

@ -611,7 +611,7 @@ div.select2-search {
input, textarea, select {
border-left-color: $error-color;
border-left-width: 3px;
}
}
.title label {
color: mix($error-color, $font-color, $weight: 70%);
}

View File

@ -269,8 +269,11 @@ div#consent_banner {
}
}
.block-password input[type=text], .block-password input[type=password] {
width: 25em;
.block-password .widget {
max-width: 25em;
[type=text], [type=password] {
width: 100%;
}
}
ul.logout-list {

View File

@ -564,7 +564,7 @@ label {
.widget .error {
font-weight: normal;
color: $red-dark;
}
}
}

View File

@ -538,7 +538,7 @@ div#rub_service {
p {
padding-left: 0.5rem;
}
}
}
}
.submit-button button::after {
content: " \2002\2192";

View File

@ -1,25 +1,5 @@
.theme-basket {
&--item {
display: flex;
flex-direction: row;
margin-bottom: 10px;
border-bottom: $cell-entry-border;
@media(max-width: $very-small-limit) {
flex-wrap: wrap;
}
}
&--item-details {
width: 100%;
flex-grow: 1;
margin-bottom: 10px;
}
&--item-activity {
font-weight: bold;
}
.theme-basket,
.theme-activities {
&--item-name,
&--item-unit,
&--item-location,
@ -43,6 +23,29 @@
&--item-name::before { content: "\f007"; }
&--item-location::before { content: "\f041"; }
&--item-date::before { content: "\f133"; }
}
.theme-basket {
&--item {
display: flex;
flex-direction: row;
margin-bottom: 10px;
border-bottom: $cell-entry-border;
@media(max-width: $very-small-limit) {
flex-wrap: wrap;
}
}
&--item-details {
width: 100%;
flex-grow: 1;
margin-bottom: 10px;
}
&--item-activity {
font-weight: bold;
}
&--item-summary {
display: flex;
@ -84,3 +87,101 @@
@extend .cancel-button;
}
}
.theme-activities {
&--search {
display: grid;
grid-auto-rows: auto;
align-items: center;
grid-template-columns: auto auto;
margin-bottom: 2rem;
@media($max-mobile-viewport) {
grid-template-columns: auto;
}
}
&--criteria-label {
margin: 1rem 1rem 0.5rem 0;
@media($max-mobile-viewport) {
margin-bottom: 0.2rem;
margin-top: 1rem;
}
}
&--items {
display: grid;
grid-auto-rows: auto;
}
&--item {
display: flex;
flex-wrap: wrap;
justify-content: right;
margin-bottom: 1rem;
padding-top: 1rem;
border-top: 1px solid $cell-entry-border-color;
@media($max-mobile-viewport) {
align-items: end;
}
&:not(.filtered) {
display: none;
}
}
&--item-label {
position: relative;
width: 100%;
font-weight: bold;
cursor: pointer;
display: flex;
align-items: center;
padding-right: calc(#{$title-font-size} + 0.5rem);
margin-bottom: 0.5rem;
&::after {
position: absolute;
top: -1rem;
right: 0;
font-size: $title-font-size;
margin: 0 0.5rem;
font-family: FontAwesome;
color: $title-color;
content: $cell-close-foldable-icon;
}
}
&--item.collapsed &--item-label::after {
content: $cell-open-foldable-icon;
}
&--item-type {
margin-left: 10px;
}
&--item-summary {
flex-grow: 1;
display: flex;
flex-direction: column;
@media($min-desktop-viewport) {
flex-direction: row;
}
}
&--item.collapsed &--item-details {
display: none;
}
&--pagination {
@extend .cell-items-pagination;
}
&--criteria-option[aria-disabled=true] {
display: none;
}
}

View File

@ -183,6 +183,18 @@
"url": "{{passerelle_url}}toulouse-maelis/{{ slug }}/validate-basket?{% if foyer_id %}family_id={{ foyer_id }}{% else %}NameID={{ user_nameid }}{% endif %}"
}
}
},
"toulouse-maelis-catalogue": {
"name": "Parsifal : catalogue des activités",
"loading-message": "Chargement du catalogue des activités…",
"template-name": "combo/parsifal/catalogue.html",
"url": "{{ passerelle_url }}toulouse-maelis/{{ slug }}/read-activity-list?ref_date={% now 'Y-m-d' %}",
"cache_duration": 60,
"timeout": 0,
"form": [
{"label": "Slug du connecteur", "varname": "slug", "required": true},
{"label": "Nombre dactivités par page", "varname": "pagination"}
]
}
}
}

View File

@ -1,6 +1,9 @@
div#login-page {
display: flex;
align-items: center;
@media($max-mobile-viewport) {
flex-direction: column;
}
}
.theme-auth-oidc {

View File

@ -11,10 +11,19 @@
background: $blue-2;
}
.form-content {
&--sidebox {
width: 33%;
+ div#rub_service {
width: 61%;
@media($min-desktop-viewport) {
&--sidebox {
width: 33%;
+ div#rub_service {
width: 61%;
}
}
}
.quixote:not(#wf-actions) div.buttons {
gap: 0 1.5rem;
margin-right: 0;
button {
margin-right: 0;
}
}
&--title {

View File

@ -189,7 +189,7 @@ div.infonotice::before, div.warningnotice::before, div.errornotice::before {
textarea, input, ul input {
border: 1px solid red;
}
}
}
}
div.widget div.title {

View File

@ -2,7 +2,7 @@
{% load i18n %}
{% block registration %}
<div>
<div class="cell--body">
{% block registration-password-form-pre %}
<p>
Après validation de votre adresse électronique, il vous sera envoyé un courriel

View File

@ -4,7 +4,7 @@
<p>
Vous navez pas de compte ? <br>
<span class="small">
Retrouvez votre démarche à laide du code de suivi qui vous a été envoyé par mail ou pas courrier
Retrouvez votre démarche à laide du code de suivi qui vous a été envoyé par mail ou par courrier
</span>
</p>
{% endblock %}

View File

@ -3,6 +3,6 @@
{% block warn_if_not_requested %}
<p>
Si vous nêtes pas à lorigine de cette demande, contactez-nous imédiatement
via le formulaire de réclamation ou appelez le 3992.
via le formulaire de réclamation ou appelez le 0147295050.
</p>
{% endblock %}

View File

@ -2,5 +2,5 @@
{% block warn_if_not_requested %}
Si vous nêtes pas à lorigine de cette demande, contactez-nous imédiatement
via le formulaire de réclamation ou appelez le 3992.
via le formulaire de réclamation ou appelez le 0147295050.
{% endblock %}

View File

@ -150,7 +150,7 @@
<div>
<p>Un problème sest produit lors de lappel au service de facturation.</p>
<p>Veuillez réessayer dans quelques minutes et, si le problème persiste appeler le 3992.</p>
<p>Veuillez réessayer dans quelques minutes et, si le problème persiste appeler le 0147295050.</p>
<p style="display: none">Lerreur est la suivante : ERREUR 500 (crash Zoo)</p>
</div>
@ -172,7 +172,7 @@
<p><em>Aucune facture nest à payer.</em></p>
{% else %}
<p>Un problème sest produit lors de lappel au service de facturation.</p>
<p>Veuillez réessayer dans quelques minutes et, si le problème persiste appeler le 3992.</p>
<p>Veuillez réessayer dans quelques minutes et, si le problème persiste appeler le 0147295050.</p>
<p style="display: none">Lerreur est la suivante :</p>
<ul style="display: none">
{% for error in json.errors %}

View File

@ -0,0 +1,132 @@
<h2 class="cell--title">Catalogue des activités {{ json.meta.reference_year }}-{{ json.meta.reference_year|add:1 }}</h2>
<div class="cell--body" data-cell-id="{{ cell.id }}">
<div class="theme-activities--search">
{% for criteria_id in json.meta.all_criterias_order %}
{% with criteria=json.meta.all_criterias|get:criteria_id %}
{% if criteria.data %}
<div class="theme-activites--criteria">
<label class="theme-activities--criteria-label">
{{ criteria.text }} :
</label>
<div class="theme-activities--criteria-choices">
<select data-autocomplete="true" multiple="true" data-criteria="{{criteria_id}}">
{% for value_id in criteria.order %}
<option value={{value_id}}>
{{ criteria.data|get:value_id }}
</option>
{% endfor %}
</select>
</div>
</div>
{% endif %}
{% endwith %}
{% endfor %}
</div>
<div class="theme-activities--items">
{% for item in json.data %}
<div class="theme-activities--item filtered collapsed"
{% for criteria_id, criterias in item.criterias.items %}
data-criteria-{{ criteria_id }}="{{ criterias.order|join:',' }}"
{% endfor %}
>
<div class="theme-activities--item-label" role="button" aria-label="Voir les détails" title="Détails">{{ item.text }}</div>
<div class="theme-activities--item-summary">
<div class="theme-activities--item-type">{{ item.criterias.type.data|get:item.criterias.type.order.0 }}</div>
<div class="theme-activities--item-location">{{ item.place.text }}</div>
<div class="theme-activities--item-date">Du {{ item.unit.dateStart|date:"d/m/Y" }} au {{ item.unit.dateEnd|date:"d/m/Y" }}</div>
</div>
<div class="theme-activities--item-details">
<p class"theme-activities--item-description">{% lorem %}</p>
<p class"theme-activities--item-audience">
Public :
{% for key in item.criterias.public.order %}
{{ item.criterias.public.data|get:key }}
{% if not forloop.last %}, {% endif %}
{% endfor %}.
</p>
</div>
<a class="pk-button" href="{{ eservices_url }}inscription-loisirs/tryauth?activity_id={{ item.activity.id }}&unit_id={{ item.unit.id }}&place_id={{ item.place.id }}&catalogue=Oui&cancelurl={{ portal_url }}mes-activites/">Inscription</a>
</div>
{% endfor %}
<div class="theme-activities--pagination">
<button class="theme-activities--pagination-prev"></a>
<button class="theme-activities--pagination-next"></a>
</div>
<div class="theme-activities--no-result" hidden>
<p class="infonotice">Aucun résultat</p>
</div>
</div>
</div>
<link rel="stylesheet" type="text/css" href="/static/xstatic/select2.min.css">
<script>
$(() => {
$.getScript("/static/xstatic/select2.min.js", function( data, textStatus, jqxhr ) {
const $cell = $('[data-cell-id="{{ cell.id }}"')
const $pagination = $cell.find('.theme-activities--pagination')
const $paginationPrev = $cell.find('.theme-activities--pagination-prev')
const $paginationNext = $cell.find('.theme-activities--pagination-next')
const paginateBy = {{ pagination|default:4 }};
function updatePagination(step) {
const items = $cell.find('.theme-activities--item.filtered')
const maxPageIndex = Math.ceil(items.length / paginateBy);
let pageIndex = $pagination.data('page_index') || 0
pageIndex = Math.max(0, Math.min(pageIndex + step, maxPageIndex - 1));
$pagination.prop('hidden', maxPageIndex <= 1);
$paginationPrev.prop('disabled', pageIndex === 0);
$paginationNext.prop('disabled', pageIndex === maxPageIndex - 1)
const startItem = paginateBy * pageIndex;
items.hide();
items.slice(startItem, startItem + paginateBy).show();
$pagination.data('page_index', pageIndex);
};
$paginationPrev.click(() => updatePagination(-1))
$paginationNext.click(() => updatePagination(1))
updatePagination(0)
$cell.find('select[data-criteria]').each((_, elem) => $(elem).select2())
$cell.find('select[data-criteria]').on('change', evt => {
let selectedCriterias = []
for(const select of $cell.find('select[data-criteria]')) {
if(select.selectedOptions.length === 0) {
continue
}
selectedCriterias.push([
select.dataset.criteria,
new Set([...select.selectedOptions].map(option => option.value))
])
}
$cell.find(`.theme-activities--item`).each((_, element) => {
element.classList.add('filtered')
for ([criteriaId, filteredValues] of selectedCriterias) {
const elementValues = element.getAttribute(`data-criteria-${criteriaId}`)
if (elementValues !== undefined &&
!elementValues.split(',').some(value => filteredValues.has(value))) {
element.classList.remove('filtered')
break
}
}
})
const filteredResults = $cell.find(`.theme-activities--item.filtered`)
$cell.find(".theme-activities--no-result").prop('hidden', filteredResults.length !== 0)
updatePagination(0)
})
$cell.find('.theme-activities--item-label').on('click', evt => {
$(evt.target).closest('.theme-activities--item').toggleClass('collapsed')
})
})})
</script>