Feat : gamutable des messages : ajout du changement de statut en masse en utilisant un checkbox sur la colonne statut
This commit is contained in:
parent
dddf1b8352
commit
ff0da8c5b7
5 changed files with 130 additions and 17 deletions
7
content/changer_statut_messages.html
Normal file
7
content/changer_statut_messages.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
#CACHE{0}
|
||||
[(#AUTORISER{modifier,message}|sinon_interdire_acces)]
|
||||
|
||||
<h2><:gamucontact:changer_statut_messages:></h2>
|
||||
<div class="ajax">
|
||||
[(#FORMULAIRE_CHANGER_STATUT_MESSAGES{#ENV*{data}})]
|
||||
</div>
|
30
formulaires/changer_statut_messages.html
Normal file
30
formulaires/changer_statut_messages.html
Normal file
|
@ -0,0 +1,30 @@
|
|||
<style type="text/css" media="screen">
|
||||
.editer_dateInter{
|
||||
text-align: center;
|
||||
}
|
||||
#champ_dateInter{
|
||||
width: 120px;
|
||||
}
|
||||
</style>
|
||||
<div class="formulaire_spip formulaire_#FORM">
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{error_data})</p>]
|
||||
|
||||
<form name="formulaire_#FORM" action="#ENV{action}" method="post">
|
||||
<div class="flex justify-between align-items-center">
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
|
||||
[(#REM) SAISIE{radio, statut, label=Statut, data=#ARRAY{}} ]
|
||||
|
||||
<div class="mt-3">
|
||||
<button name="statut" type="submit" class="btn" value="publie"><i class="fa fa-check verte"></i> <:gamucontact:publier:></button>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<button name="statut" type="submit" class="btn" value="poubelle"><i class="fa fa-trash rouge"></i> <:gamucontact:poubelle:></button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
50
formulaires/changer_statut_messages.php
Normal file
50
formulaires/changer_statut_messages.php
Normal file
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
function formulaires_changer_statut_messages_charger_dist($data, $redirect = '') {
|
||||
$valeurs = [];
|
||||
|
||||
$data = json_decode($data,true);
|
||||
if (empty($data)) {
|
||||
$valeurs['error_data'] = 'Il faut avoir sélectionné au moins 1 message';
|
||||
}
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_changer_statut_messages_verifier_dist($data, $redirect = '') {
|
||||
$erreurs = [];
|
||||
|
||||
$data = json_decode($data, true);
|
||||
if (empty($data)) {
|
||||
$erreurs['message_erreur'] = "Il faut avoir sélectionné au moins 1 message";
|
||||
}
|
||||
|
||||
$statut = _request('statut');
|
||||
|
||||
if (!in_array($statut, ['prepa', 'prop', 'publie', 'poubelle'])) {
|
||||
$erreurs['message_erreur'] = "Le statut envoyé n'est pas valide";
|
||||
}
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
function formulaires_changer_statut_messages_traiter_dist($data, $redirect = '') {
|
||||
$statut = _request('statut');
|
||||
$data = json_decode($data,true);
|
||||
|
||||
$sql_in = sql_in('id_message', $data);
|
||||
sql_updateq('spip_messages', ['statut' => $statut], $sql_in);
|
||||
|
||||
// Cache
|
||||
include_spip('inc/invalideur');
|
||||
suivre_invalideur("id='messages/$data[0]");
|
||||
|
||||
$retour = [];
|
||||
$retour['redirect'] = "";
|
||||
$retour['message_ok'] = gamutable_fermer_modalbox();
|
||||
|
||||
return $retour;
|
||||
}
|
|
@ -15,3 +15,21 @@
|
|||
env
|
||||
}>
|
||||
</div>
|
||||
<style type="text/css">
|
||||
.gamutable table .filtreColonne .statut,
|
||||
.gamutable table .filtreColonne .nom,
|
||||
.gamutable table .filtreColonne .objet {
|
||||
border-left: 1px solid rgb(184, 184, 184);
|
||||
}
|
||||
.gamutable table .filtreColonne button {
|
||||
padding: .2rem;
|
||||
display: inline-flex;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #cecece;
|
||||
border-radius: 5px;
|
||||
margin-left: .5rem;
|
||||
}
|
||||
.gamutable table .filtreColonne button::after {
|
||||
content: "Valider";
|
||||
}
|
||||
</style>
|
|
@ -3,28 +3,33 @@
|
|||
|
||||
[(#ENV{id}|setenv{id_message})]
|
||||
[{
|
||||
"header_top":{
|
||||
"Infos": {"class":"header_infos", "colspan": 4},
|
||||
"Statut": {"class":"header_statut", "colspan" :3},
|
||||
"Expéditeur": {"class":"header_exp", "colspan": 3},
|
||||
"Message": {"class":"message", "colspan": 2}
|
||||
},
|
||||
"header":{
|
||||
"id": "_",
|
||||
"date": "Date",
|
||||
"origine": "Page origine",
|
||||
"origine": "Origine",
|
||||
"formulaire": "Formulaire",
|
||||
[(#CONFIG{gamucontact/gamutable_afficher_type}|oui)
|
||||
"type": "Type",
|
||||
]
|
||||
"objet": "Objet",
|
||||
"statut": "Statut",
|
||||
"actions": "Actions",
|
||||
"statut": " ",
|
||||
"actions_masse": " ",
|
||||
"actions": " ",
|
||||
"nom": "Expéditeur",
|
||||
"email_contact": "Email",
|
||||
"telephone": "Tel",
|
||||
"objet": "Objet",
|
||||
"message": "Message"
|
||||
},
|
||||
"crayons": {
|
||||
[(#REM)
|
||||
"statut": "message",
|
||||
"nom": "message"
|
||||
]
|
||||
"checkbox": {
|
||||
"actions_masse": [(#URL_PAGE{changer_statut_messages}|json_encode)]
|
||||
},
|
||||
"crayons": {},
|
||||
"ordreCol" : {
|
||||
"date": "desc"
|
||||
},
|
||||
|
@ -40,19 +45,19 @@
|
|||
"filtreColValeurs" : {},
|
||||
"classes": {
|
||||
"id": "w80p",
|
||||
"objet": "minw250p",
|
||||
"statut": "minw100p",
|
||||
"formulaire": "w150p"
|
||||
"objet": "minw250p span_g",
|
||||
"statut": "minw140p span_g",
|
||||
"formulaire": "w150p",
|
||||
"nom": "span_g"
|
||||
}
|
||||
}
|
||||
<B_messages>
|
||||
,
|
||||
<BOUCLE_messages(MESSAGES){','}{!par date_heure}>
|
||||
[(#SET{message, <a class="modalbox" href="[(#URL_PAGE{message, id_message=#ID_MESSAGE}|parametre_url{message_seul, oui})]" title="Afficher le texte complet du message"><i class="gt-lien"></i> [(#TEXTE*|couper{100})]</a>})]
|
||||
[(#SET{message, <a class="modalbox" href="[(#URL_PAGE{message, id_message=#ID_MESSAGE}|parametre_url{message_seul, oui})]" title="Afficher le texte complet du message"><i class="gt-eye"></i> [(#TEXTE*|couper{100})]</a>})]
|
||||
#SET{statut, #LISTE{prepa,prop,publie,poubelle}|str_replace{#LISTE{Brouillon,Proposé,Publié,Poubelle}, #STATUT}}
|
||||
#SET{formulaire, #TITRE|replace{Formulaire de, ''}}
|
||||
[(#SET{origine_, <a class="small nowrap" href="#ORIGINE" title="Accéder à la page d'origine du message">[(#ORIGINE|couper{35})...]</a>})]
|
||||
[(#SET{origine, article origine})]
|
||||
[(#SET{origine, [<a class="nowrap" href="(#ORIGINE)" title="Accéder à la page d'origine du message"><i class="gt-lien gt-2x"></i> <:gamucontact:acces_page:></a>]})]
|
||||
|
||||
#SET{args,#ID_MESSAGE}
|
||||
[(#STATUT|!={publie}|oui)
|
||||
|
@ -70,6 +75,7 @@
|
|||
</a>
|
||||
})]
|
||||
]
|
||||
[(#SET{actions_masse, dataid-#ID_MESSAGE})]
|
||||
|
||||
{
|
||||
"html": {
|
||||
|
@ -80,12 +86,13 @@
|
|||
[(#CONFIG{gamucontact/gamutable_afficher_type}|oui)
|
||||
"type": [(#TYPE|json_encode)],
|
||||
]
|
||||
"objet": [(#OBJET|json_encode)],
|
||||
"statut": [(#GET{statut}|json_encode)],
|
||||
"actions_masse": [(#GET{actions_masse}|json_encode)],
|
||||
"actions": [(#GET{actions}|json_encode)],
|
||||
"nom": [(#NOM|json_encode)],
|
||||
"email_contact": [(#EMAIL_CONTACT|json_encode)],
|
||||
"telephone": [(#TELEPHONE|json_encode)],
|
||||
"objet": [(#OBJET|json_encode)],
|
||||
"message": [(#GET{message}|json_encode)]
|
||||
},
|
||||
"search": {
|
||||
|
@ -96,12 +103,13 @@
|
|||
[(#CONFIG{gamucontact/gamutable_afficher_type}|oui)
|
||||
"type": [(#TYPE|json_encode)],
|
||||
]
|
||||
"objet": [(#OBJET|json_encode)],
|
||||
"statut": [(#STATUT|json_encode)],
|
||||
"actions_masse": "",
|
||||
"actions": "",
|
||||
"nom": [(#NOM|json_encode)],
|
||||
"email_contact": [(#EMAIL_CONTACT|json_encode)],
|
||||
"telephone": [(#TELEPHONE|json_encode)],
|
||||
"objet": [(#OBJET|json_encode)],
|
||||
"message": [(#GET{message}|json_encode)]
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue