Changeset 55727 in spip-zone


Ignore:
Timestamp:
Dec 19, 2011, 9:57:58 AM (8 years ago)
Author:
marcimat@…
Message:

On prépare en douceur le passage d'admin plugins vers l'utilisation du décideur et de l'actionneur.

Location:
_plugins_/svp
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/svp/formulaires/admin_plugin.html

    r55709 r55727  
    33        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    44        <form method="post" action="#ENV{action}">
     5
     6                <INCLURE{fond=formulaires/inc-svp_confirmer_actions, env} />
     7               
    58                #ACTION_FORMULAIRE{#ENV{action}}
    69                <div class="liste-plugins">
  • _plugins_/svp/formulaires/admin_plugin.php

    r55722 r55727  
    2727        $valeurs['actions'] = array();
    2828       
     29        $valeurs['ids_paquet'] = _request('ids_paquet');
     30        $valeurs['_todo'] = _request('_todo');
     31                       
    2932        return $valeurs;
    3033}
  • _plugins_/svp/formulaires/charger_plugin.html

    r55700 r55727  
    77        <form method="post" action="#ENV{action}">
    88
    9                 [<div class="reponse_formulaire reponse_formulaire_erreur">
    10                         (#ENV**{erreurs}|table_valeur{decideur_erreurs}|foreach{svp_presenter_actions})
    11                 </div>]
    12 
    13         [<div id="charger_plugin_confirm">
    14                        
    15             <div class="reponse_formulaire reponse_formulaire_ok">
    16                 <strong><:svp:actions_demandees:></strong>
    17                 <ul>(#ENV**{erreurs}|table_valeur{decideur_demandes}|foreach{svp_presenter_actions})</ul>
    18             </div>
    19             [<div class="reponse_formulaire reponse_formulaire_ok">
    20                 <strong><:svp:actions_necessaires:></strong>
    21                 <ul>(#ENV**{erreurs}|table_valeur{decideur_propositions}|foreach{svp_presenter_actions})</ul>
    22             </div>]
    23             <p class="boutons">
    24                 <input type="submit" name="annuler_actions" class="submit annuler_actions" value="<:bouton_annuler:>" />
    25                 <input type="submit" name="valider_actions" class="submit valider_actions" value="<:bouton_valider:>" />
    26             </p>
    27             <script type="text/javascript">
    28                                 [(#REM)
    29                                         Fonctionnement du JS.
    30                                                 - overlayClose // pas de click en dehors des éléments prévus
    31                                                
    32                                                 - onComplete   // le chargement et fait : si l'on clique les boutons du formulaire
    33                                                                            // mis dans la modale, on leur ajoute une classe 'fire'
    34                                                                            // et on lance la fermeture de la boite
    35 
    36                                                 - onCleanup    // avant la fermeture... on verifie que 'fire' est bien là
    37                                                                            // sinon c'est qu'on a appuyé ESC ou cliqué X
    38                                                                            // dans ce cas on met 'fire' sur annuler
    39 
    40                                                 - onClose          // apres la fermeture, on clique le bouton ayant 'fire'
    41                                                                
    42                                 ]
    43                 <!--
    44                 (function($){
    45                     $(function(){
    46                                                 if ($.modalbox !== 'undefined') {
    47                                                         $.modalboxload('#charger_plugin_confirm', {
    48                                                                 overlayClose: false, // pas de click en dehors
    49                                                                 onComplete: function() {
    50                                                                         $('#cboxLoadedContent .boutons .submit').click(function(){
    51                                                                                 $(this).addClass('fire'); $.mediaboxClose();
    52                                                                         });
    53                                                                 },
    54                                                                 onCleanup: function() {
    55                                                                         if (!$('#charger_plugin_confirm .boutons .submit.fire').length) {
    56                                                                                 $('#charger_plugin_confirm .boutons .submit.annuler_actions').addClass('fire');
    57                                                                         }
    58                                                                         $('#charger_plugin_confirm').hide();
    59                                                                 },
    60                                                                 onClose: function() { $('#charger_plugin_confirm .submit.fire').click(); }
    61                                                         });
    62                                                 }
    63                     });
    64                 })(jQuery);
    65                 -->
    66             </script>
    67         </div>]
     9                <INCLURE{fond=formulaires/inc-svp_confirmer_actions, env} />
    6810       
    6911                [(#REM) <!-- declarer les hidden qui declencheront le service du formulaire
    7012                parametre : url d'action --> ]
    7113                #ACTION_FORMULAIRE{#ENV{action}}
    72                 <input type="hidden" name="_todo" class='hidden' value="[(#ENV{_todo})]" />
    7314                <input type="hidden" name="exclusion" class='hidden' value="oui" />
    7415
  • _plugins_/svp/formulaires/charger_plugin.php

    r55704 r55727  
    3535                // -- On construit le tableau des ids de paquets conformement a l'interface du decideur
    3636                if (_request('installer')) {
    37                         // L'utilisateur a demander une installation multiple de paquets
     37                        // L'utilisateur a demande une installation multiple de paquets
    3838                        // -- on verifie la liste des id_paquets uniquement
    3939                        if ($id_paquets = _request('ids_paquet')) {
     
    5353                        $erreurs = _T('svp:message_nok_aucun_plugin_selectionne');
    5454                else {
     55                       
    5556                        // On fait appel au decideur pour determiner la liste exacte des commandes apres
    5657                        // verification des dependances
    5758                        include_spip('inc/svp_decider');
    58                         $decideur = new Decideur;
    59                         $decideur->log = true;
    60                         $decideur->verifier_dependances($a_installer);
    61 
    62                         if (!$decideur->ok) {
    63                                 $erreurs['decideur_erreurs'] = array();
    64                                 foreach ($decideur->err as $id=>$errs) {
    65                                         foreach($errs as $err) {
    66                                                 $erreurs['decideur_erreurs'][] = $err;
    67                                         }
    68                                 }
    69                         }
    70                         else {
    71                                 $erreurs['decideur_propositions']       = $decideur->presenter_actions('changes');
    72                                 $erreurs['decideur_demandes']           = $decideur->presenter_actions('ask');
    73                                 $erreurs['decideur_actions']            = $decideur->presenter_actions('todo');
    74 
    75                                 // On construit la liste des actions pour la passer au formulaire en hidden
    76                                 $todo = array();
    77                                 foreach ($decideur->todo as $_todo) {
    78                                         $todo[$_todo['i']] = $_todo['todo'];
    79                                 }
    80                                 set_request('_todo', serialize($todo));
    81                         }
     59                        svp_decider_verifier_actions_demandees($a_installer, $erreurs);
    8260                }
    8361        }
     
    10078                $actions = unserialize(_request('_todo'));
    10179                include_spip('inc/svp_actionner');
    102                 $actionneur = new Actionneur();
    103                 $actionneur->log = true;
    104                 $actionneur->ajouter_actions($actions);
    105                 $actionneur->verrouiller();
    106                 $actionneur->sauver_actions();
     80                svp_actionner_traiter_actions_demandees($actions, $retour);
     81        }
    10782
    108                 $retour['redirect'] = generer_url_action('actionner', 'redirect='. generer_url_ecrire('admin_plugin'));
    109                 set_request('_todo', '');
    110                 $retour['message_ok'] = _T("svp:action_patienter");
    111         }
    112         else {
    113                 // On a demande une installation, "installer" ou "installer_paquet" la fonction verifier a appele
    114                 // le decideur afin de definir la liste des commandes a actionner en fonction des dependances
    115                 set_request('traitement_fait',1);
    116         }
    11783        $retour['editable'] = true;
    11884
  • _plugins_/svp/inc/svp_actionner.php

    r55703 r55727  
    872872}
    873873
     874
     875/**
     876 * Fonction pour aider le traitement des actions
     877 * dans un formulaire CVT
     878 *
     879 * @param array $actions la liste des actions a faire (id_paquet => action)
     880 * @param array $retour le tableau de retour du CVT dans la partie traiter
     881 * @return bool Action ok.
     882**/
     883function svp_actionner_traiter_actions_demandees($actions, &$retour) {
     884                $actionneur = new Actionneur();
     885                $actionneur->log = true;
     886                $actionneur->ajouter_actions($actions);
     887                $actionneur->verrouiller();
     888                $actionneur->sauver_actions();
     889
     890                $retour['redirect'] = generer_url_action('actionner', 'redirect='. generer_url_ecrire('admin_plugin'));
     891                set_request('_todo', '');
     892                $retour['message_ok'] = _T("svp:action_patienter");
     893}
    874894?>
  • _plugins_/svp/inc/svp_decider.php

    r55653 r55727  
    660660}
    661661
     662
     663/**
     664 * Simplification pour la partie verifier
     665 * des formulaires utilisant le decideur
     666 *
     667 * @param array $a_actionner Tableau des actions par paquet (id_paquet => action)
     668 * @param array $erreurs Tableau d'erreurs de verifier (CVT)
     669 * @return bool Operation ok.
     670**/
     671function svp_decider_verifier_actions_demandees($a_actionner, &$erreurs) {
     672                       
     673        $decideur = new Decideur;
     674        $decideur->log = true;
     675        $decideur->verifier_dependances($a_actionner);
     676
     677        if (!$decideur->ok) {
     678                $erreurs['decideur_erreurs'] = array();
     679                foreach ($decideur->err as $id=>$errs) {
     680                        foreach($errs as $err) {
     681                                $erreurs['decideur_erreurs'][] = $err;
     682                        }
     683                }
     684                return false;
     685        }
     686
     687        $erreurs['decideur_propositions']       = $decideur->presenter_actions('changes');
     688        $erreurs['decideur_demandes']           = $decideur->presenter_actions('ask');
     689        $erreurs['decideur_actions']            = $decideur->presenter_actions('todo');
     690
     691        // On construit la liste des actions pour la passer au formulaire en hidden
     692        $todo = array();
     693        foreach ($decideur->todo as $_todo) {
     694                $todo[$_todo['i']] = $_todo['todo'];
     695        }
     696        set_request('_todo', serialize($todo));
     697        return true;
     698}
    662699?>
  • _plugins_/svp/paquet.xml

    r55722 r55727  
    22        prefix="svp"
    33        categorie="maintenance"
    4         version="0.57.0"
     4        version="0.58.0"
    55        etat="test"
    66        compatibilite="[3.0.0-beta;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.