diff --git a/auted_administrations.php b/auted_administrations.php index e2775c6..e95f54d 100644 --- a/auted_administrations.php +++ b/auted_administrations.php @@ -27,7 +27,7 @@ function auted_upgrade($nom_meta_base_version, $version_cible) { $maj = array(); $maj['create'] = array(array('maj_tables', array('spip_aut_modeles','spip_auteurs'))); - $maj['1.0.3'] = array(array('maj_tables', array('spip_aut_modeles','spip_auteurs'))); + $maj['1.0.4'] = array(array('maj_tables', array('spip_aut_modeles','spip_auteurs'))); include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj); diff --git a/base/auted.php b/base/auted.php index d213bda..d724314 100644 --- a/base/auted.php +++ b/base/auted.php @@ -51,6 +51,7 @@ function auted_declarer_tables_objets_sql($tables) { 'nom' => 'varchar(55) NOT NULL DEFAULT ""', 'modele' => 'text NOT NULL DEFAULT ""', 'statut' => 'varchar(20) DEFAULT "0" NOT NULL', + 'modifie' => 'varchar(55) NOT NULL DEFAULT ""', 'maj' => 'TIMESTAMP' ), 'key' => array( @@ -58,11 +59,7 @@ function auted_declarer_tables_objets_sql($tables) { 'KEY statut' => 'statut', ), 'titre' => 'nom AS titre, "" AS lang', - #'date' => '', - 'champs_editables' => array('nom', 'modele'), - 'champs_versionnes' => array(), - 'rechercher_champs' => array(), - 'tables_jointures' => array(), + 'champs_editables' => array('nom', 'modele', 'modifie'), 'statut_textes_instituer' => array( 'prepa' => 'texte_statut_en_cours_redaction', 'publie' => 'texte_statut_publie', diff --git a/charger_aut_modele.html b/charger_aut_modele.html new file mode 100644 index 0000000..df96ce2 --- /dev/null +++ b/charger_aut_modele.html @@ -0,0 +1,8 @@ +
+

Charger un modèle pour : [ (#ENV{nom})]

+
+ + [(#FORMULAIRE_CHARGER_AUT_MODELE{#ENV{id_auteur},#ENV{redirect}})] +
+ +
diff --git a/css/auted.css b/css/auted.css index 46362d4..71ff9ae 100644 --- a/css/auted.css +++ b/css/auted.css @@ -35,3 +35,10 @@ button[type='button'].toggle_save_modele { .pas_modele.enregistrer_modele input { display: none; } + +.modifie input { + color: red; +} +.modifie a { + color: red; +} diff --git a/formulaires/charger_aut_modele.html b/formulaires/charger_aut_modele.html new file mode 100644 index 0000000..1ff1075 --- /dev/null +++ b/formulaires/charger_aut_modele.html @@ -0,0 +1,30 @@ +
+ +[

(#ENV*{message_erreur})

] +[

(#ENV*{message_ok})

] + +
+ #ACTION_FORMULAIRE{#ENV{action}} + +
+ #SET{name,aut_modele} + #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} + #SET{obli,"obligatoire"} +
+ + [(#SET{nom_modele,#AUT_MODELE|json_decode{true}|table_valeur{name}})] + +
+ + +
+ + +
+
+ + +

+
+ +
diff --git a/formulaires/charger_aut_modele.php b/formulaires/charger_aut_modele.php new file mode 100644 index 0000000..d8d143b --- /dev/null +++ b/formulaires/charger_aut_modele.php @@ -0,0 +1,37 @@ + $id_auteur, + "aut_modele" => "" + ); + + return $valeurs; +} + +function formulaires_charger_aut_modele_verifier_dist($id_auteur, $redirect = ''){ + $erreurs = array(); + return $erreurs; +} + +function formulaires_charger_aut_modele_traiter_dist($id_auteur, $redirect = ''){ + + $retour = array(); + $retour['message_ok'] = "bravo"; + $retour['redirect'] = "spip.php?page=perdu"; + $retour['editable'] = true; + + $aut_modele = _request('aut_modele'); + if ($aut_modele) { + $aut_modele = json_decode($aut_modele, true); + if (is_array($aut_modele)) { + + + } + $modele = sql_getfetsel('aut_modele', 'spip_auteurs', 'aut_modele'); + + } + + return $retour; +} diff --git a/formulaires/editer_autorisations.html b/formulaires/editer_autorisations.html index 0d6a872..662d66a 100644 --- a/formulaires/editer_autorisations.html +++ b/formulaires/editer_autorisations.html @@ -1,3 +1,5 @@ +#CACHE{0} +
[

(#ENV*{message_erreur})

] @@ -23,6 +25,8 @@ {pgp ?!IN #ENV{pgp}} {webmestre?} {tout}> + #SET{modifie,''} + #SET{modifie,#MODIFIE}
@@ -46,14 +50,25 @@ data-id_auteur="#ID_AUTEUR" > - ]
-
- + @@ -98,6 +113,7 @@ 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'); diff --git a/formulaires/editer_autorisations.php b/formulaires/editer_autorisations.php index eaa611e..3a47199 100644 --- a/formulaires/editer_autorisations.php +++ b/formulaires/editer_autorisations.php @@ -43,13 +43,17 @@ function formulaires_editer_autorisations_traiter_dist($id_auteur=0, $redirect=' 'modele' => json_encode($Tautorisations), 'statut' => 'publie' ]; - $id_aut_modele = sql_getfetsel('id_aut_modele', 'spip_aut_modeles', 'nom='.sql_quote($nom_modele)); - if (intval($id_aut_modele)) { + $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'] = $nom_modele; + $set['aut_modele'] = $r['nom']; } sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id)); diff --git a/formulaires/save_aut_modele.html b/formulaires/save_aut_modele.html new file mode 100644 index 0000000..34021ea --- /dev/null +++ b/formulaires/save_aut_modele.html @@ -0,0 +1,96 @@ +
+ +[

(#ENV*{message_ok})

] + +
+ #ACTION_FORMULAIRE{#ENV{action}} + + +
+ #SET{name,repercuter} +
+

+ <:auted:repercuter_modele:> + rep #ENV{repercuter} +

+
+ + +
+
+ + +
+
+ +
+ #SET{name,new_modele} + #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} + #SET{obli,"obligatoire"} +
+ + [(#GET{erreurs})] + + <:auted:forcer_changer_nom_du_modele:> : #ENV{nom_modele} +
+
+ +
+ + + +

+
+ +
+ + diff --git a/formulaires/save_aut_modele.php b/formulaires/save_aut_modele.php new file mode 100644 index 0000000..09d7aec --- /dev/null +++ b/formulaires/save_aut_modele.php @@ -0,0 +1,82 @@ + $id_auteur, + "nom_modele" => sql_getfetsel('aut_modele', 'spip_auteurs', 'id_auteur='.intval($id_auteur)), + "new_modele" => "", + "repercuter" => "oui", + ); + } + + return $valeurs; +} + +function formulaires_save_aut_modele_verifier_dist($id_auteur, $redirect = ''){ + $nom_modele = _request('nom_modele'); + $new_modele = _request('new_modele'); + $repercuter = _request('repercuter'); + + + $erreurs = array(); + if ($repercuter === 'nom') { + foreach (array ('new_modele ') as $obligatoire) { + if (empty($new_modele)){ + $erreurs[$obligatoire] = 'Ce champs est obligatoire'; + } + } + } + + if ($repercuter === 'non' and $nom_modele === $new_modele) { + $erreurs['new_modele'] = _T('auted:forcer_changer_nom_du_modele'); + } + + return $erreurs; +} + +function formulaires_save_aut_modele_traiter_dist($id_auteur, $redirect = ''){ + $new_modele = _request('new_modele'); + $repercuter = _request('repercuter'); + + $from = [ + 'spip_auteurs AS A', + 'spip_aut_modeles AS M' + ]; + $where = [ + 'A.id_auteur='.intval($id_auteur), + 'A.aut_modele=M.nom' + ]; + $r = sql_fetsel('M.id_aut_modele, M.modele, M.nom', $from, $where); + + if (!empty($r)) { + if ($repercuter === 'oui') { + sql_updateq('spip_auteurs', ['autorisations' => $r['modele']], 'aut_modele='.sql_quote($r['nom'])); + sql_updateq('spip_aut_modeles', ['modele' => $r['modele']], 'nom='.sql_quote($r['nom'])); + } + + if ($repercuter === 'non') { + sql_updateq('spip_auteurs', ['aut_modele' => $new_modele], 'id_auteur='.intval($id_auteur)); + $set = [ + 'nom' => $new_modele, + 'modele' => $r['autorisations'], + 'statut' => 'publie' + ]; + sql_insertq('spip_aut_modeles', $set); + } + } + + + $retour = array(); + + + $retour['message_ok'] = "bravo"; + if ($redirect) { + $retour['redirect'] = $redirect; + } + + return $retour; +} diff --git a/img/save.svg b/img/save.svg index df5ab65..9a2e5c4 100644 --- a/img/save.svg +++ b/img/save.svg @@ -9,7 +9,7 @@ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" inkscape:version="1.1-dev (6c977cb37d, 2020-02-03)" sodipodi:docname="save.svg" - id="save_modele" + id="save" clip-rule="evenodd" fill-rule="evenodd" y="0px" diff --git a/paquet.xml b/paquet.xml index 3a48d3f..bdb498c 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,12 +1,12 @@