Browse Source

Plusieurs améliorations d'interface dans les vues d'admin + dans les listes on voit les inscrits et dans un inscrit on voit les listes inscrites

master
RastaPopoulos 4 weeks ago
parent
commit
0a5cf95d32
  1. 17
      base/pushsubscribers.php
  2. 28
      formulaires/editer_push.html
  3. 80
      formulaires/editer_push.php
  4. 1
      lang/push_fr.php
  5. 4
      lang/pushlist_fr.php
  6. 1
      lang/pushsubscriber_fr.php
  7. 1
      paquet.xml
  8. 10
      prive/objets/contenu/push.html
  9. 12
      prive/objets/contenu/pushlist.html
  10. 4
      prive/objets/liste/pushlists.html
  11. 4
      prive/objets/liste/pushs.html
  12. 6
      prive/objets/liste/pushsubscribers.html

17
base/pushsubscribers.php

@ -67,12 +67,19 @@ function pushsubscribers_declarer_tables_objets_sql($tables) {
'champs_editables' => array('endpoint', 'p256dh', 'auth', 'vapid_public'),
'champs_versionnes' => array('endpoint', 'p256dh', 'auth', 'vapid_public', 'date_creation'),
'rechercher_champs' => array("endpoint" => 5, "p256dh" => 5, "auth" => 5, "vapid_public" => 5),
'tables_jointures' => array(),
'tables_jointures' => array(
'id_pushsubscriber' => 'pushsubscriptions',
),
'statut_textes_instituer' => array(
'valide' => 'texte_statut_publie',
'refuse' => 'texte_statut_refuse',
'poubelle' => 'texte_statut_poubelle',
),
'statut_images' => array(
'valide' => 'puce-publier-8.png',
'refuse' => 'puce-refuser-8.png',
'poubelle' => 'puce-supprimer-8.png',
),
'statut'=> array(
array(
'champ' => 'statut',
@ -106,7 +113,9 @@ function pushsubscribers_declarer_tables_objets_sql($tables) {
'champs_editables' => array('titre', 'contexte', 'auto'),
'champs_versionnes' => array('titre', 'type', 'contexte', 'auto'),
'rechercher_champs' => array("titre" => 10),
'tables_jointures' => array(),
'tables_jointures' => array(
'id_pushlist' => 'pushsubscriptions',
),
);
// Les notifs à envoyer
@ -131,8 +140,8 @@ function pushsubscribers_declarer_tables_objets_sql($tables) {
),
'titre' => 'titre AS titre, "" AS lang',
'date' => 'date',
'champs_editables' => array('titre', 'texte', 'url', 'topic'),
'champs_versionnes' => array('titre', 'texte', 'url', 'topic'),
'champs_editables' => array('titre', 'texte', 'url', 'topic', 'date_debut'),
'champs_versionnes' => array('titre', 'texte', 'url', 'topic', 'date_debut'),
'rechercher_champs' => array("titre" => 10, "texte" => 5, "topic" => 10),
'tables_jointures' => array(),
'statut_textes_instituer' => array(

28
formulaires/editer_push.html

@ -1,29 +1 @@
<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_push,nouveau}'>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method="post" action="#ENV{action}"><div>
#ACTION_FORMULAIRE
<input type="hidden" name="id_push" value="#ENV{id_push}" />
<div class="editer-groupe">
[(#SAISIE{input, titre, obligatoire=oui,
label=<:push:champ_titre_label:/>})]
[(#SAISIE{textarea, texte,
label=<:push:champ_texte_label:/>})]
[(#SAISIE{input, url,
label=<:push:champ_url_label:/>})]
[(#SAISIE{input, topic, obligatoire=oui,
label=<:push:champ_topic_label:/>})]
</div>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class="boutons"><input type="submit" class="submit" value="<:bouton_enregistrer|attribut_html:/>" /></p>
</div></form>
]
</div>

80
formulaires/editer_push.php

@ -39,6 +39,83 @@ function formulaires_editer_push_identifier_dist($id_push = 'new', $retour = '',
return serialize(array(intval($id_push)));
}
/**
* Saisies du formulaire
*
* @param int|string $id_push
* Identifiant du push. 'new' pour un nouveau push.
* @param string $retour
* URL de redirection après le traitement
* @param int $lier_trad
* Identifiant éventuel d'un push source d'une traduction
* @param string $config_fonc
* Nom de la fonction ajoutant des configurations particulières au formulaire
* @param array $row
* Valeurs de la ligne SQL du push, si connu
* @param string $hidden
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
* @return string
* Hash du formulaire
*/
function formulaires_editer_push_saisies_dist($id_push = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
$saisies = array(
array(
'saisie' => 'hidden',
'options' => array(
'nom' => 'id_push',
'valeur_forcee' => $id_push,
),
),
array(
'saisie' => 'input',
'options' => array(
'nom' => 'titre',
'obligatoire' => 'oui',
'label' => _T('push:champ_titre_label'),
),
),
array(
'saisie' => 'textarea',
'options' => array(
'nom' => 'texte',
'rows' => 5,
'label' => _T('push:champ_texte_label'),
),
),
array(
'saisie' => 'input',
'options' => array(
'nom' => 'url',
'label' => _T('push:champ_url_label'),
),
),
array(
'saisie' => 'input',
'options' => array(
'nom' => 'topic',
'obligatoire' => 'oui',
'label' => _T('push:champ_topic_label'),
),
),
array(
'saisie' => 'date',
'options' => array(
'nom' => 'date_debut',
'horaire' => 'oui',
'label' => _T('push:champ_date_debut_label'),
),
'verifier' => array(
'type' => 'date',
'options' => array(
'normaliser' => 'datetime',
),
),
),
);
return $saisies;
}
/**
* Chargement du formulaire d'édition de push
*
@ -90,9 +167,6 @@ function formulaires_editer_push_charger_dist($id_push = 'new', $retour = '', $l
*/
function formulaires_editer_push_verifier_dist($id_push = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
$erreurs = array();
$erreurs = formulaires_editer_objet_verifier('push', $id_push, array('titre', 'tag'));
return $erreurs;
}

1
lang/push_fr.php

@ -13,6 +13,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// C
'champ_date_debut_label' => 'Date d’envoi',
'champ_date_debut_vide' => 'Au plus vite',
'champ_texte_label' => 'Texte',
'champ_topic_label' => 'Étiquette identifiant',
'champ_titre_label' => 'Titre',

4
lang/pushlist_fr.php

@ -16,6 +16,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'champ_contexte_label' => 'Contexte',
'champ_titre_label' => 'Titre',
'champ_type_label' => 'Type de liste',
'champ_type_feed_label' => 'Cette liste est liée à un flux de contenus automatique',
'confirmer_supprimer_pushlist' => 'Confirmez-vous la suppression de cette liste de notifications push ?',
// I
@ -25,7 +26,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'info_aucun_pushlist' => 'Aucune liste de notifications push',
'info_nb_pushlists' => '@nb@ listes de notifications push',
'info_pushlists_auteur' => 'Les listes de notifications push de cet auteur',
'inscriptions' => 'Inscriptions aux listes',
// R
'retirer_lien_pushlist' => 'Retirer cette liste de notifications push',
'retirer_tous_liens_pushlists' => 'Retirer toutes les listes de notifications push',

1
lang/pushsubscriber_fr.php

@ -15,6 +15,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'champ_auth_label' => 'Auth',
'champ_date_creation_label' => 'Date de création',
'champ_endpoint_label' => 'Endpoint',
'champ_id_auteur_label' => 'Compte lié',
'champ_p256dh_label' => 'p256dh',
'champ_vapid_public_label' => 'Clé VAPID publique',
'confirmer_supprimer_pushsubscriber' => 'Confirmez-vous la suppression de cet inscrit aux notifications push ?',

1
paquet.xml

@ -16,6 +16,7 @@
<licence>GNU/GPL</licence>
<necessite nom="saisies" compatibilite="[3.23.2;]" />
<necessite nom="verifier" compatibilite="[1.15.0;]" />
<necessite nom="offline" compatibilite="[1.0.0;]" />
<pipeline nom="autoriser" inclure="pushsubscribers_autorisations.php" />

10
prive/objets/contenu/push.html

@ -10,8 +10,8 @@
</div>]
[<div class="champ contenu_url[ (#URL*|strlen|?{'',vide})]">
<div class="label"><:push:champ_url_label:/> : </div>
<span dir="#LANG_DIR" class="#EDIT{url} url">(#URL)</span>
<div class="label" style="display:block;"><:push:champ_url_label:/> : </div>
<span dir="#LANG_DIR" class="#EDIT{url} url"><a href="#URL">(#URL)</a></span>
</div>]
[<div class="champ contenu_tag[ (#TAG*|strlen|?{'',vide})]">
@ -19,9 +19,9 @@
<span dir="#LANG_DIR" class="#EDIT{tag} tag">(#TAG)</span>
</div>]
[<div class="champ contenu_date_debut[ (#DATE_DEBUT*|strlen|?{'',vide})]">
<div class="label"><:push:champ_date_debut_label:/> : </div>
<span dir="#LANG_DIR" class="#EDIT{date_debut} date_debut">(#DATE_DEBUT)</span>
[<div class="champ contenu_date_debut">
<div class="label" style="display:block;"><:push:champ_date_debut_label:/> : </div>
<span dir="#LANG_DIR" class="#EDIT{date_debut} date_debut">(#DATE_DEBUT|=={0000-00-00 00:00:00}|?{<:push:champ_date_debut_vide:/>,#DATE_DEBUT|affdate|concat{" ", #DATE_DEBUT|affdate{H:i}}})</span>
</div>]
</BOUCLE_push>

12
prive/objets/contenu/pushlist.html

@ -4,13 +4,15 @@
<span dir="#LANG_DIR" class="#EDIT{titre} titre">(#TITRE)</span>
</div>]
[<div class="champ contenu_type[ (#TYPE*|strlen|?{'',vide})]">
<div class="label"><:pushlist:champ_type_label:/> : </div>
<span dir="#LANG_DIR" class="#EDIT{type} type">(#TYPE)</span>
</div>]
[(#TYPE|=={feed}|oui)
<div class="champ contenu_type[ (#TYPE*|strlen|?{'',vide})]">
<:pushlist:champ_type_feed_label:>
(pushs/[(#CONTEXTE|parse_url{#EVAL{PHP_URL_PATH}})]).
</div>
]
[<div class="champ contenu_contexte[ (#CONTEXTE*|strlen|?{'',vide})]">
<div class="label"><:pushlist:champ_contexte_label:/> : </div>
<div class="label" style="display:block;"><:pushlist:champ_contexte_label:/> : </div>
<span dir="#LANG_DIR" class="#EDIT{contexte} contexte">(#CONTEXTE)</span>
</div>]

4
prive/objets/liste/pushlists.html

@ -9,15 +9,13 @@
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{pushlist:info_1_pushlist,pushlist:info_nb_pushlists}})</strong></caption>]
<thead>
<tr class="first_row">
<th class="picto" scope="col"></th>
<th class="titre" scope="col">[(#TRI{titre,<:pushlist:champ_titre_label:/>,ajax})]</th>
<th class="id" scope="col">[(#TRI{id_pushlist,<:info_numero_abbreviation:/>,ajax})]</th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_pushlists(PUSHLISTS){id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>
<BOUCLE_liste_pushlists(PUSHLISTS){id_pushsubscriber?}{id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="picto">[(#CHEMIN_IMAGE{pushlist-16.png}|balise_img)]</td>
<td class="titre principale">[(#LOGO_PUSHLIST|image_reduire{20,26})]<a href="[(#ID_PUSHLIST|generer_url_entite{pushlist})]" title="<:info_numero_abbreviation|attribut_html:/> #ID_PUSHLIST">[(#RANG). ]#TITRE</a></td>
<td class="id">[(#AUTORISER{modifier,pushlist,#ID_PUSHLIST}|?{
<a href="[(#URL_ECRIRE{pushlist_edit,id_pushlist=#ID_PUSHLIST})]">#ID_PUSHLIST</a>,

4
prive/objets/liste/pushs.html

@ -12,7 +12,7 @@
<tr class="first_row">
<th class="statut" scope="col">[(#TRI{statut,<span title="<:lien_trier_statut|attribut_html:/>">#</span>,ajax})]</th>
<th class="titre" scope="col">[(#TRI{titre,<:push:champ_titre_label:/>,ajax})]</th>
<th class="date" scope="col">[(#TRI{date,<:date:/>,ajax})]</th>
<th class="date_debut" scope="col">[(#TRI{date_debut,<:push:champ_date_debut_label:/>,ajax})]</th>
<th class="id" scope="col">[(#TRI{id_push,<:info_numero_abbreviation:/>,ajax})]</th>
</tr>
</thead>
@ -21,7 +21,7 @@
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#STATUT|puce_statut{push,#ID_PUSH})]</td>
<td class="titre principale">[(#LOGO_PUSH|image_reduire{20,26})]<a href="[(#ID_PUSH|generer_url_entite{push})]" title="<:info_numero_abbreviation|attribut_html:/> #ID_PUSH">[(#RANG). ]#TITRE</a></td>
<td class="date secondaire">[(#DATE|affdate_jourcourt)]</td>
<td class="date_debut secondaire">[(#DATE_DEBUT|=={0000-00-00 00:00:00}|?{<:push:champ_date_debut_vide:/>,#DATE_DEBUT|affdate})]</td>
<td class="id">[(#AUTORISER{modifier,push,#ID_PUSH}|?{
<a href="[(#URL_ECRIRE{push_edit,id_push=#ID_PUSH})]">#ID_PUSH</a>,
#ID_PUSH

6
prive/objets/liste/pushsubscribers.html

@ -9,18 +9,18 @@
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{pushsubscriber:info_1_pushsubscriber,pushsubscriber:info_nb_pushsubscribers}})</strong></caption>]
<thead>
<tr class="first_row">
<th class="picto" scope="col"></th>
<th class="statut" scope="col">[(#TRI{statut,<span title="<:lien_trier_statut|attribut_html:/>">#</span>,ajax})]</th>
<th class="endpoint" scope="col">[(#TRI{endpoint,<:pushsubscriber:champ_endpoint_label:/>,ajax})]</th>
<th class="id_auteur" scope="col">[(#TRI{id_auteur, <:pushsubscriber:champ_id_auteur_label:>, ajax})]</th>
<th class="id" scope="col">[(#TRI{id_pushsubscriber,<:info_numero_abbreviation:/>,ajax})]</th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_pushsubscribers(PUSHSUBSCRIBERS){id_mot?}{id_auteur?}{where?}{statut?}{recherche?}{tri #ENV{par,num endpoint},#GET{defaut_tri}}{par endpoint}{pagination #ENV{nb,10}}>
<BOUCLE_liste_pushsubscribers(PUSHSUBSCRIBERS){id_pushlist?}{id_mot?}{id_auteur?}{where?}{statut?}{recherche?}{tri #ENV{par,num endpoint},#GET{defaut_tri}}{par endpoint}{pagination #ENV{nb,10}}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="picto">[(#CHEMIN_IMAGE{pushsubscriber-16.png}|balise_img)]</td>
<td class="statut">[(#STATUT|puce_statut{pushsubscriber,#ID_PUSHSUBSCRIBER})]</td>
<td class="endpoint principale">[(#LOGO_PUSHSUBSCRIBER|image_reduire{20,26})]<a href="[(#ID_PUSHSUBSCRIBER|generer_url_entite{pushsubscriber})]" title="<:info_numero_abbreviation|attribut_html:/> #ID_PUSHSUBSCRIBER">[(#RANG). ][(#ENDPOINT|couper{80})]</a></td>
<td class="id_auteur">[<a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">(#ID_AUTEUR|?{#INFO_TITRE{auteur,#ID_AUTEUR}})</a>]</td>
<td class="id">[(#AUTORISER{modifier,pushsubscriber,#ID_PUSHSUBSCRIBER}|?{
<a href="[(#URL_ECRIRE{pushsubscriber_edit,id_pushsubscriber=#ID_PUSHSUBSCRIBER})]">#ID_PUSHSUBSCRIBER</a>,
#ID_PUSHSUBSCRIBER

Loading…
Cancel
Save