divers corrections, notamment, on ne peut pas modifier les droits si on a un modele associé

This commit is contained in:
Christophe 2020-02-11 15:25:44 +01:00
parent 76ff6e6802
commit 77832c8edf
3 changed files with 22 additions and 92 deletions

View file

@ -1,5 +1,4 @@
#CACHE{0}
<div class="formulaire_spip formulaire_#FORM">
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
@ -25,9 +24,9 @@
{pgp ?!IN #ENV{pgp}}
{webmestre?}
{tout}>
#SET{modifie,''}
<BOUCLE_mod(AUT_MODELES){nom=#AUT_MODELE}> #SET{modifie,#MODIFIE} </BOUCLE_mod>
<tr id="auteur-#ID_AUTEUR" data-id_auteur="#ID_AUTEUR" data-new="[oui(#AUT_MODELE|!={''}|oui)]">
<tr id="auteur-#ID_AUTEUR">
[(#AUT_NOM|?{#SET{disabled,oui}, #SET{disabled,''}})]
<td>
<div>
[(#PGP|=={boss}|oui)
@ -45,38 +44,18 @@
<i class="fa fa-upload"></i>
</a>
#NOM
<button class="toggle_save_modele" type="button"
title="<:auted:sauvegarder_modele:>"
data-id_auteur="#ID_AUTEUR"
>
<svg id="svg_save-#ID_AUTEUR" class="icone_svg [ (#AUT_MODELE|oui)checked]" alt="">
<use xlink:href="[(#CHEMIN{img/toggle.svg})]#toggle" />
</svg>
</button>
<div class="nom_modele">#AUT_NOM</div>
]
</div>
<div class="enregistrer_modele modele-#ID_AUTEUR[ (#GET{modifie}|oui)modifie]">
<input id="modele-#ID_AUTEUR" class="" type="text" value="[(#AUT_MODELE)]" name="modele-#ID_AUTEUR" placeholder="Nom du modèle"/>
<a class="mediabox save_modele"
href="[(#URL_PAGE{save_aut_modele}
|parametre_url{id_auteur,#ID_AUTEUR}
|parametre_url{redirect,#SELF}
)]"
title = "<:auted:sauvegarder_modele:>"
>
<svg id="svg_save-#ID_AUTEUR" class="icone_svg" alt="">
<use xlink:href="[(#CHEMIN{img/save.svg})]#save" />
</svg>
</a>
</div>
<input type="hidden" name="Tid_auteur[]" value="#ID_AUTEUR" placeholder="Nom modèle">
[(#GET{disabled}|oui) <input type="hidden" value="#ID_AUTEUR" name="Tdisabled\[\]"/> ]
[(#PGP|!={boss}|oui) <input type="hidden" name="Tid_auteur\[\]" value="#ID_AUTEUR" placeholder="Nom modèle"> ]
</td>
<BOUCLE_valeurAuth(DATA){source tableau, #ENV{auth_modele}}>
[(#SET{autorisations,#AUTORISATIONS|json_decode{true}|table_valeur{#VALEUR{type}}})]
<td>
[(#PGP|!={boss}|oui)
<INCLURE{fond=inclure/auth_choix,id_auteur,type=#VALEUR{type},faire=#VALEUR{faire},autorisations=#GET{autorisations}}>
<INCLURE{fond=inclure/auth_choix,id_auteur,type=#VALEUR{type},faire=#VALEUR{faire},autorisations=#GET{autorisations},disabled=#GET{disabled}}>
]
</td>
</BOUCLE_valeurAuth>
@ -88,41 +67,3 @@
<p class="boutons"><input type="submit" class="submit" value="Valider" ></p>
</div></form>
</div>
<script type="text/javascript">
jQuery(function() {
editer_autorisations();
//onAjaxLoad(editer_autorisations);
function editer_autorisations(){
$('.toggle_save_modele').on('click', function(e){
e.stopPropagation();
var id_auteur = $(this).data('id_auteur');
var nom_modele = $('#modele-'+id_auteur).val().trim();
if (!nom_modele) {
$('.modele-'+id_auteur).toggleClass('pas_modele');
$(this).children('svg').toggleClass('checked');
}
})
$('.select_autorisation').on('change', function(e){
e.stopPropagation();
var id_auteur = $(this).data('id_auteur');
if (id_auteur) {
var nouveau = $("#auteur-"+id_auteur).data('new');
console.log("new ", nouveau);
if (nouveau) {
//$('.save_modele').attr('disabled',true);
$('input#modele-' + id_auteur)
.css('border-color', 'red')
.css('color', 'red');
$('#svg_save-' + id_auteur).css('fill', 'red');
}
}
})
}
});
</script>

View file

@ -18,51 +18,39 @@ function formulaires_editer_autorisations_verifier_dist($id_auteur=0, $redirect=
function formulaires_editer_autorisations_traiter_dist($id_auteur=0, $redirect=''){
include_spip('inc/session');
$retour = array();
$Tdisabled = _request('Tdisabled');
$Tid_auteur = _request('Tid_auteur');
foreach ($Tid_auteur as $id) {
$Tauths = _request('id-' . $id);
$nom_modele = _request('modele-' . $id);
$Tautorisations = [];
if (in_array($id, $Tdisabled)) {
continue;
}
$Tauths = _request('id-' . $id);
if (!empty($Tauths)) {
foreach ($Tauths as $valeur) {
$Tautorisations[key($valeur)][]= $valeur[key($valeur)];
}
}
$set = [ 'autorisations' => json_encode($Tautorisations) ];
if ($nom_modele) {
$aut_modele = [
'nom' => $nom_modele,
'modele' => json_encode($Tautorisations),
'statut' => 'publie'
];
$r = sql_fetsel('id_aut_modele, modele, nom', 'spip_aut_modeles', 'nom='.sql_quote($nom_modele));
$id_aut_modele = $r['id_aut_modele'];
if ($id_aut_modele) {
if ($r['modele'] !== $aut_modele['modele']) {
$aut_modele['modifie'] = 'oui';
}
sql_updateq('spip_aut_modeles', $aut_modele, 'id_aut_modele='.intval($id_aut_modele));
} else {
sql_insertq('spip_aut_modeles', $aut_modele);
}
$set['aut_modele'] = $r['nom'];
}
sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id));
// on recalcul la session
$auteur = sql_fetsel('*', 'spip_auteurs','id_auteur='.intval($id));
actualiser_sessions($auteur);
$retour['message_ok'] = "Enregistrement validé";
}
include_spip('inc/invalideur');
suivre_invalideur("id='id_auteur/$id'");
if ($redirect) {
$retour['redirect'] = $redirect;
}

View file

@ -1,5 +1,6 @@
#SET{name,aut_#ENV{type}}
<select id="#GET{name}"
[(#ENV{disabled}|oui) disabled]
data-id_auteur="#ID_AUTEUR"
name="id-#ID_AUTEUR[][#ENV{type}]" class="select select_autorisation chosen" multiple>
<option value=""></option>