Projet

Général

Profil

Development #86905

toulouse-2022: [parsifal] Utilisation des cellules Parsifal en backoffice.

Ajouté par Nicolas Roche il y a 3 mois. Mis à jour il y a environ 2 mois.

Statut:
Solution déployée
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
13 février 2024
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

On a les cellules Parsifal qui sont utilisées à la fois par le portail usager et le portail agent.

(seule la cellule "panier Maélis" n'est pas utilisée sur le portail agent).
En front la cellule catalogue utilise le style défini au même endroit que la cellule panier, dans le fichier ~/src/publik-base-theme/static/toulouse-2022/_json_cells.scss
Il se pose la question de savoir comment rendre également accessibles ces règles pour les cellules Parsifal déployées sur le portal agent.


Demandes liées

Lié à Intégrations graphiques Publik - Development #86843: toulouse-2022: [parsifal] permettre l'utilisation de la cellule catalogue en backofficeSolution déployée12 février 2024

Actions

Historique

#1

Mis à jour par Nicolas Roche il y a 3 mois

  • Lié à Development #86843: toulouse-2022: [parsifal] permettre l'utilisation de la cellule catalogue en backoffice ajouté
#2

Mis à jour par Nicolas Roche il y a 3 mois

  • Statut changé de Nouveau à Information nécessaire
  • Assigné à mis à Thomas Jund (congés, retour le 29/04)
  • Pour les cellule du DUI, on a des boutons "Modifier" qui utilisent la classe "pk-button" et des icones "🔍Voir ..." donc au final on a très peu de CSS, que l'on pourrait même probablement le retirer.
    <style>
      .parsifal .label::after {
        content: " : ";
      }
      div#main-content .parsifal .value br {
        display: initial;
      }
    </style>
    
  • Pour la cellule agenda, le CSS est embarqué directement dedans.
    cf templates/combo/json/enfant-agenda.html

Je vois un fichier backoffice.css Utilisé à Nanterre et à Toulouse.
Dans le thème on voit qu'il est chargé sur le portail agent :
"portal_agent_extra_css": "/static/toulouse-2022/backoffice.css",
Puis (https://dev.entrouvert.org/issues/49541) :

templates/portal-agent/combo/page_template.html:  {% if portal_agent_extra_css|first == '/' %}
templates/portal-agent/combo/page_template.html:    <link rel="stylesheet" type="text/css" href="{{ portal_url }}{{ portal_agent_extra_css }}">

A Toulouse on a aussi un fichier backoffice.scss
Si je veux lui ajouter l'import des scss définis pour les cellules json,
alors je dois embarquer la moitié des règles du front, ce qui a pour effet de changer l'aspect du backoffice.

@import 'vars';
@import '../includes/utils';
@import '../includes/general';
@import '../includes/title';
@import '../includes/layout';
@import '../includes/nav';
@import '../includes/cells';
@import '../includes/forms';
@import '../includes/wcs';
@import '../includes/misc';
@import '../includes/library';
@import 'custom';
@import 'json_cells';

Je me demande si plutôt que de m'embarquer là dedans, je ne devrais pas plutôt reverter ce commit (et poser le CSS directement dans les cellules comme pour les cellules agenda) ?
https://git.entrouvert.org/entrouvert/publik-base-theme/commit/e26bc2ba8659bf5faa543aa51100ef81a8d8092e

#3

Mis à jour par Frédéric Péters il y a 2 mois

alors je dois embarquer la moitié des règles du front

Évidemment il ne faut pas faire ça mais qu'est-ce qui t'y oblige ?

Si la réponse est uniquement "les quelques variables type "$title-font-size" qui sont utilisées, une possibilité là-dessus est simplement de les définir avec des valeurs appropriées dans backoffice.scss.

#4

Mis à jour par Nicolas Roche il y a 2 mois

Si la réponse est uniquement "les quelques variables type "$title-font-size" qui sont utilisées,

En fait j'ai commencé par ça et quand j'ai vu poindre toutes les dépendances j'ai opté pour inclure les modules dans l'ordre du front afin d'avoir rapidement solution à proposer.

une possibilité là-dessus est simplement de les définir avec des valeurs appropriées dans backoffice.scss.

Je pars là dessus afin d'énumérer les variables.

#5

Mis à jour par Nicolas Roche il y a 2 mois

En faisant au plus bête, c'est à dire en re-définissant "appropriées" par "attendues par le compilateur SCSS" ça donne 29 variables et quelques règles.

@import 'encombrants';

// _vars.scss
$very-small-limit: 35em;
$gray-1: #212121;
$gray-6: #E2E2E2;
$cell-entry-border-color: $gray-6;
$mobile-limit: 1023px;
$base-font: 17;
$fz-2: 36em / $base-font;
$title-font-size: $fz-2;
$salmon-dark: #D8522A;
$primary-color: $salmon-dark;
$title-color: $primary-color;
$cancel-button-style: ".gray-button";
$font-color: $gray-1;
$button-color: $font-color;
$button-background: white;
$button-hover-color: $button-color !default;
$widget-padding: 0.74rem 1.5rem;
// ../includes/_general.scss
$border-radius: null !default;
// ../includes/gadjo-extra.scss
$widget-focus-outline: none;
// ../includes/_cells.scss
$cell-entry-border: 1px solid $cell-entry-border-color !default;
$cell-open-foldable-icon: "\f107" !default;  // angle-down
$cell-close-foldable-icon: "\f106" !default;  // angle-up
.gru-content div.cell div.cell-items-pagination {
        padding: 1rem;
        .cell-items-pagination-next {
                float: right;
                margin-right: 0;
        }
}
// ../includes/_layout.scss
$max-mobile-viewport: "max-width: #{$mobile-limit}";
$min-desktop-viewport: "min-width: #{min-desktop-viewport($mobile-limit)}";
// ../includes/_forms.scss
%cancel-button {
        @extend #{$cancel-button-style};
}
.gru-content button.cancel-button,
div.buttons .cancel-button button {
        @extend %cancel-button;
}
$button-hover-background: $button-background !default;
$button-padding: $widget-padding !default;
$button-border: 1px solid transparent !default;
$button-border-radius: $border-radius !default;
$button-focus-outline: $widget-focus-outline !default;

%button {
    --color: #{$button-color};
    --background: #{$button-background};
    --hover-color: #{$button-hover-color};
    --hover-background: #{$button-hover-background};

    background: var(--background);
    text-align: center;
    color: var(--color);
    padding: $button-padding;
    cursor: pointer;
    border: $button-border;
    border-radius: $button-border-radius;
    transition: background 0.5s ease, color 0.5s ease, border 0.5s ease;
    margin-right: 1.5em;
    vertical-align: middle;
    box-shadow: 1px 0px 5px rgba(0, 0, 0, 0.21);
    text-decoration: none;
    line-height: normal;

    &[aria-pressed=true], &:hover {
        box-shadow: 0px 0px 5px #777;
        background: var(--hover-background);
        color: var(--hover-color);
    }

    &:disabled {
        box-shadow: none;
        cursor: not-allowed;
        filter: grayscale(100%);
    }

    &:focus {
        @if $button-focus-outline == none {
            outline: 1px dotted $button-background;
        } @else {
            outline: $button-focus-outline;
            outline-offset: $button-focus-outline-offset;
        }
    }
}
// _custom.scss:
.gray-button {
        @extend %button;
        background-color: $gray-6;
        border-color: $gray-6;
        &:hover {
                background-color: $gray-1;
                border-color: $gray-1;
                color: white;
        }
}

@import 'json_cells';

Si la réponse est uniquement "les quelques variables type "$title-font-size" qui sont utilisées,

Je vous laisse placer le curseur pour interpréter ma réponse (ça me dépasse).

#6

Mis à jour par Frédéric Péters il y a 2 mois

En faisant au plus bête

Soyons plus fin :

$cell-close-foldable-icon: "\f106";
$cell-open-foldable-icon: "\f107";
$cell-entry-border: 1px solid #ccc;
$cell-entry-border-color: #ccc;
$mobile-limit: 760px;
$max-mobile-viewport: "max-width: #{$mobile-limit}";
$min-desktop-viewport: "min-width: #{$mobile-limit + 1}";
$title-color: #161c2a;
$title-font-size: 200%;
$very-small-limit: 560px;

.cancel-button {}
.cell-items-pagination {}

@import 'encombrants';
@import 'json_cells';
#7

Mis à jour par Nicolas Roche il y a 2 mois

  • Statut changé de Information nécessaire à En cours
  • Assigné à changé de Thomas Jund (congés, retour le 29/04) à Nicolas Roche

Merci Fred !

#8

Mis à jour par Robot Gitea il y a 2 mois

  • Statut changé de En cours à Solution proposée

Nicolas Roche (nroche) a ouvert une pull request sur Gitea concernant cette demande :

#9

Mis à jour par Nicolas Roche il y a 2 mois

  • Description mis à jour (diff)
#11

Mis à jour par Robot Gitea il y a 2 mois

  • Statut changé de Solution proposée à Solution validée

Serghei Mihai (smihai) a approuvé une pull request sur Gitea concernant cette demande :

#12

Mis à jour par Robot Gitea il y a 2 mois

  • Statut changé de Solution validée à Résolu (à déployer)

Nicolas Roche (nroche) a mergé une pull request sur Gitea concernant cette demande :

#13

Mis à jour par Transition automatique il y a environ 2 mois

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF