From 881a8a56870bd11cd600431a872d73cf4b18ca41 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Tue, 30 Mar 2021 14:29:46 +0200
Subject: [PATCH] Refactoring du modele de pagination du prive #2822 : - memes
 conventions de classe que pour les modeles du public - on affiche un simple
 '+' avec un title 'Tout afficher' pour l'option tout afficher - on limite a 5
 liens car c'est bien suffisant - on ajuste les styles

---
 ecrire/public/fonctions.php         |  2 +-
 prive/modeles/pagination_prive.html | 56 +++++++++++++----------------
 prive/themes/spip/lists.css.html    | 17 ++++++++-
 3 files changed, 41 insertions(+), 34 deletions(-)

diff --git a/ecrire/public/fonctions.php b/ecrire/public/fonctions.php
index df8f17a124..96bb8ebf6f 100644
--- a/ecrire/public/fonctions.php
+++ b/ecrire/public/fonctions.php
@@ -211,7 +211,7 @@ function filtre_pagination_dist(
 		define('_PAGINATION_NOMBRE_LIENS_MAX', 10);
 	}
 	if (!defined('_PAGINATION_NOMBRE_LIENS_MAX_ECRIRE')) {
-		define('_PAGINATION_NOMBRE_LIENS_MAX_ECRIRE', 10);
+		define('_PAGINATION_NOMBRE_LIENS_MAX_ECRIRE', 5);
 	}
 
 
diff --git a/prive/modeles/pagination_prive.html b/prive/modeles/pagination_prive.html
index 2b8a9584cc..e74ecb7ba9 100644
--- a/prive/modeles/pagination_prive.html
+++ b/prive/modeles/pagination_prive.html
@@ -5,41 +5,33 @@
 #SET{pages,#GET{premiere}|range{#GET{derniere}}}
 #SET{sep,#ENV{separateur,' | '}}
 <B_pages>
-	[<span
-  class='label'>(#ENV{label,''})</span>][
+	[<span class="pagination-label"><span class="label">(#ENV{label})</span></span>]
+	<ul class="pagination-items">
+		[<li class="pagination-item"><a
+			href='[(#ENV{url}|parametre_url{#ENV{debut},''}|ancre_url{#ENV{ancre}})]'
+			class='pagination-lien lien_pagination'
+			rel='nofollow'>(#GET{premiere}|>{1}|?{0})</a></li><li
+			class="pagination-item tbc disabled"><span class="pagination-lien">...</span></li>]
 
-	(#SET{item, #ENV{page_courante}|moins{2}|mult{#ENV{pas}} })
-
-	]<span
-	class="pages">[<a
-	href='[(#ENV{url}|parametre_url{#ENV{debut},''})]##ENV{ancre}'
-	class='lien_pagination'
-	rel='nofollow'>(#GET{premiere}|>{1}|?{0})</a><span
-	class="tbc">[<span
-	class='sep'>(#GET*{sep})</span>]...[<span
-	class='sep'>(#GET*{sep})</span>]</span
-
-		>]<BOUCLE_pages(POUR){tableau #GET{pages}}>[
+		<BOUCLE_pages(POUR){tableau #GET{pages}}>[
 		(#SET{item, #VALEUR|moins{1}|mult{#ENV{pas}} })
-		][(#ENV{url}
+		][<li class="pagination-item[(#VALEUR|=={#ENV{page_courante}}|oui)on active]">(#ENV{url}
 		|parametre_url{#ENV{debut},#GET{item}|?{#GET{item}}}
 		|ancre_url{#ENV{ancre}}
-		|lien_ou_expose{#GET{item},#VALEUR|=={#ENV{page_courante}},lien_pagination,'',nofollow})][<span
-		class='sep'>(#VALEUR|<{#GET{derniere}}|?{#GET{sep}})</span
-		>]</BOUCLE_pages>[<span
+		|lien_ou_expose{#GET{item},#VALEUR|=={#ENV{page_courante}}|?{span.pagination-lien},pagination-lien lien_pagination,'',nofollow})</li>]
+		</BOUCLE_pages>
+
+		[<li class="pagination-item tbc disabled"><span class="pagination-lien">...</span></li>
+		<li class="pagination-item"><a
+		href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}}|ancre_url{#ENV{ancre}})]'
+		class='pagination-lien lien_pagination'
+		rel='nofollow'>(#GET{derniere}|<{#ENV{nombre_pages}}|?{#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}})</a></li>]
 
-	class="tbc">[<span
-	class='sep'>(#GET*{sep})</span>]...[<span
-	class='sep'>(#GET*{sep})</span>]</span><a
-	href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}})]##ENV{ancre}'
-	class='lien_pagination'
-	rel='nofollow'>(#GET{derniere}|<{#ENV{nombre_pages}}|?{#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}})</a>]</span>[
-	(#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}|<{1000}|oui)[
-	(#SET{item, #ENV{page_courante}|mult{#ENV{pas}} })
-	][<span
-	class="all[(#ENV{page_courante}|=={0}|oui)disabled]">[<span
-	class='sep'>(#GET*{sep})</span>](#ENV{url}
-	|parametre_url{#ENV{debut},-1}
-	|ancre_url{#ENV{ancre}}
-	|lien_ou_expose{<:lien_tout_afficher:>,#ENV{page_courante}|=={0},lien_pagination,'',nofollow})</span>]]
+		[<li class="pagination-item all[(#ENV{page_courante}|=={0}|oui)on active]">(#ENV{url}
+			|parametre_url{#ENV{debut},-1}
+			|ancre_url{#ENV{ancre}}
+			|lien_ou_expose{+,#ENV{page_courante}|=={0}|?{span.pagination-lien},pagination-lien lien_pagination,'',nofollow}
+		  |inserer_attribut{title,<:lien_tout_afficher:>}
+		)</li>]
+	</ul>
 </B_pages>
\ No newline at end of file
diff --git a/prive/themes/spip/lists.css.html b/prive/themes/spip/lists.css.html
index 669e0c6c41..6b75963404 100644
--- a/prive/themes/spip/lists.css.html
+++ b/prive/themes/spip/lists.css.html
@@ -126,9 +126,24 @@
 
 .tri, .pagination {background:#eee;border-top:1px solid #ddd;border-bottom:1px solid #ddd; margin: 0;padding:2px 0; /*font-size: 11px;*/ font-weight: bold; text-align: #ENV{right}; white-space: nowrap;margin-top:1em; }
 .tri {text-align:#ENV{left};}
-.tri .on, .pagination .on { background:#ccc;padding:2px 3px;color:#fff; }
+.tri .on { background:#ccc;padding:2px 3px;color:#fff; }
 .tri img, .pagination img {vertical-align:bottom;}
 
+.pagination .pagination-items {list-style: none;display: flex;flex-direction: row; justify-content: flex-end}
+.pagination .pagination-item {  margin: 0; flex-basis: 2em; display: flex;align-items: center; font-size: 0.9em}
+.pagination .pagination_precedent_suivant .pagination-item { flex-basis: auto;}
+.pagination .pagination-item + .pagination-item {  margin-left: 0.15em }
+.pagination .pagination-lien { display:block; flex-basis: 100%; background: #f0f0f0; border:1px solid #ccc; text-decoration: none; padding:0.15em .30em; border-radius:.15em;text-align: center}
+.pagination .on .pagination-lien,
+.pagination a.pagination-lien:hover,
+.pagination a.pagination-lien:focus,
+.pagination a.pagination-lien:active { background: #ENV{foncee}; border-color: #ENV{foncee}; color: #fff; }
+.pagination .on .pagination-lien {font-weight: bold;}
+.pagination .pagination_precedent_suivant .disabled {visibility: hidden}
+.pagination .pagination-item.disabled {}
+.pagination .pagination-item.disabled .pagination-lien {color:#aaa; font-weight: normal;border-color: #ddd;}
+
+
 .pagination + .tri, .tri + .pagination {border-top:0;margin-top:0;}
 .pagination + .liste_items, .tri + .liste_items {border-top:0;margin-top:0;}
 .liste_items + .tri, .liste_items + .pagination {margin-top:-1em;margin-bottom:1em;}
-- 
GitLab