Changeset 95832 in spip-zone for _plugins_/itineraires


Ignore:
Timestamp:
Mar 7, 2016, 6:22:04 PM (5 years ago)
Author:
rastapopoulos@…
Message:

On ajoute le dragNdrop pour déplacer les étapes d'un itinéraires ! Merci à mist_graphx (pour le copiage dans sélections), marcimat et tcharlss pour l'aide. :)

Location:
_plugins_/itineraires/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/itineraires/trunk/action/deplacer_itineraires_etape.php

    r95813 r95832  
    1616function action_deplacer_itineraires_etape_dist($arg=null) {
    1717        if (is_null($arg)) {
    18                 $securiser_action = charger_fonction('securiser_action', 'inc');
    19                 $arg = $securiser_action();
     18                // DEMI sécurité : s'il y a un hash, on teste la sécurité
     19                if (_request('hash')) {
     20                        $securiser_action = charger_fonction('securiser_action', 'inc');
     21                        $arg = $securiser_action();
     22                }
     23                // Sinon, on prend l'arg direct
     24                else {
     25                        $arg = _request('arg');
     26                }
    2027        }
    2128       
     
    4249               
    4350                // On teste maintenant les différents cas
    44                 $nouveau_rang = null;
    4551                if ($deplacement === 'bas') {
    4652                        // Si c'était tout en bas, on remonte en haut
  • _plugins_/itineraires/trunk/itineraires_pipelines.php

    r77585 r95832  
    9696}
    9797
    98 
    99 ?>
     98/**
     99 * Pipeline jqueryui_forcer pour demander au plugin l'insertion des scripts pour .sortable()
     100 *
     101 * @param array $plugins
     102 * @return array
     103 */
     104function itineraires_jqueryui_plugins($plugins) {
     105        include_spip('inc/config');
     106       
     107        // On envoie que si on est dans l'espace prive et qu'il y a des étapes
     108    if(test_espace_prive() and lire_config('itineraires/activer_etapes', false)) {
     109                $plugins[] = "jquery.ui.core";
     110                $plugins[] = "jquery.ui.widget";
     111                $plugins[] = "jquery.ui.mouse";
     112                $plugins[] = "jquery.ui.sortable";
     113                $plugins[] = "jquery.ui.droppable";
     114                $plugins[] = "jquery.ui.draggable";
     115    }
     116   
     117        return $plugins;
     118}
  • _plugins_/itineraires/trunk/paquet.xml

    r95813 r95832  
    2424        <pipeline nom="declarer_tables_interfaces" inclure="base/itineraires.php" />
    2525        <pipeline nom="declarer_tables_auxiliaires" inclure="base/itineraires.php" />
    26         <pipeline nom="affiche_milieu" inclure="itineraires_pipelines.php" />
    27         <pipeline nom="affiche_auteurs_interventions" inclure="itineraires_pipelines.php" />
    28         <pipeline nom="optimiser_base_disparus" inclure="itineraires_pipelines.php" />
     26        <pipeline nom="affiche_milieu" inclure="itineraires_pipelines.php" />
     27        <pipeline nom="affiche_auteurs_interventions" inclure="itineraires_pipelines.php" />
     28        <pipeline nom="optimiser_base_disparus" inclure="itineraires_pipelines.php" />
     29        <pipeline nom="jqueryui_plugins" inclure="itineraires_pipelines.php" />
    2930
    3031        <menu nom="itineraires" titre="itineraire:titre_itineraires" parent="menu_edition" icone="images/itineraire-16.png" action="itineraires" />
  • _plugins_/itineraires/trunk/prive/objets/liste/itineraires_etapes.html

    r95813 r95832  
    1919        <tbody>
    2020        <BOUCLE_liste_itineraires_etapes(ITINERAIRES_ETAPES){id_itineraire?}{where?}{recherche?}{tri #ENV{par,rang},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,50}}>
    21                 <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     21                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]" data-etape="#ID_ITINERAIRES_ETAPE">
    2222                        <td class="rang">#RANG</td>
    2323                        <td class="titre principale">[(#LOGO_ITINERAIRES_ETAPE|image_reduire{20,26})]<a href="[(#ID_ITINERAIRES_ETAPE|generer_url_entite{itineraires_etape})]" title="<:info_numero_abbreviation|attribut_html:> #ID_ITINERAIRES_ETAPE">#TITRE</a></td>
     
    4646[<p class="pagination">(#PAGINATION{prive})</p>]
    4747</div>
     48<script type="text/javascript">
     49/*<![CDATA[*/
     50;(function($){
     51        $(function(){
     52                $('.itineraires_etapes tbody').sortable({
     53                        items:"tr",
     54                        cursor:"move",
     55                        axis:'y'
     56                });
     57                $('.itineraires_etapes tbody').disableSelection();
     58               
     59                $('.itineraires_etapes tbody').on('sortupdate', function(event, ui) {
     60                        // URL de base de l'action
     61                        var url_action = '[(#VAL{deplacer_itineraires_etape}|generer_url_action{"", 1})]';
     62                        // On récupère l'identifiant de l'étape qui a bougé
     63                        var id_etape = ui.item.data('etape');
     64                        // On calcule le rang où elle arrive à la fin
     65                        var rang = ui.item.index() + 1;
     66                       
     67                        // URL finale
     68                        url_action = parametre_url(url_action, 'arg', id_etape + '-' + rang)
     69                       
     70                        //console.log(url_action);
     71                       
     72                        var request = $.ajax({
     73                                type: 'POST',
     74                                url: url_action
     75                        });
     76                        request.done(function() {
     77                                $('.itineraires_etapes').ajaxReload();
     78                        });
     79                });
     80        });
     81})(jQuery);
     82/*]]>*/
     83</script>
     84
    4885</B_liste_itineraires_etapes>[
    4986<div class="liste-objets itineraires_etapes caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
Note: See TracChangeset for help on using the changeset viewer.