Changeset 78965 in spip-zone


Ignore:
Timestamp:
Nov 29, 2013, 11:29:39 PM (5 years ago)
Author:
cy_altern@…
Message:

Correction du bogue sur les datemax/datemin lors des modification des date de debut et fin du formulaire de reservation
Ajout d'une option de config pour heures de debut et fin des reservations par defaut
Passage des calculs de timestamp en strtotime()
Amelioration du verifier() du form de suppression
N'afficher que les ressources autorisees dans le formulaire de reservation
Retour des formulaires de reservation/suppression sur le meme jour d'affichage que celui en cours (manque encore de retrouver la vue semaine/mois)

Location:
_plugins_/orr/trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/orr/trunk/contenu/page-orr.html

    r78803 r78965  
    3636                </div>
    3737                <div id="tableau_mois">
    38                         <INCLURE{fond=inc/affichage_mois,ajax=tableau}>
     38                        <INCLURE{fond=inc/affichage_mois,ajax=tableau,env}>
    3939                </div>
    4040        </div>
     
    121121        jQuery("#tous").click(function(){ jQuery("#motscles option").attr("selected", "selected"); });
    122122        jQuery("#aucun").click(function(){ jQuery("#motscles option").removeAttr("selected"); });
     123
    123124});
    124125</script>
  • _plugins_/orr/trunk/formulaire_poubelle.html

    r73248 r78965  
    1 <p>Voulez-vous supprimer la réservation : <br/>
    2 <em>#INFO_ORR_RESERVATION_NOM{orr_reservations,#ENV{idresa}}</em></p> <br/>
    3 <div class="ajax">#FORMULAIRE_VIDERESA{#ENV{idresa},#ENV{date_debut}}</div>
     1<h1 class="box_resa"><:orr:supprimer:></h1>
     2<div><:orr:supprimer_resa:><br/>
     3<strong>#INFO_ORR_RESERVATION_NOM{orr_reservations,#ENV{idresa}}</strong>?</div>
     4<div class="ajax">#FORMULAIRE_VIDERESA{#ENV{idresa},#ENV{id_ressource},#ENV{jour_aff}}</div>
  • _plugins_/orr/trunk/formulaire_reservation.html

    r78810 r78965  
    1 #SET{id,#ENV{id_reservation}}
    2 [(#GET{id}|?{
    3         #SET{affichage,poubelle_visible}
    4         #SET{date_fin,#INFO_ORR_DATE_FIN{orr_reservation,#GET{id}}}
    5         #SET{date_debut,#INFO_ORR_DATE_DEBUT{orr_reservation,#GET{id}}}
    6         ,
    7         #SET{affichage,poubelle_cache}
    8         #SET{date_fin,#ENV{ma_date}}
    9         #SET{date_debut,#ENV{ma_date}}
    10 })]
    11 
    12 [(#AUTORISER{supprimer,orr_reservation,#ENV{id_ressource}})
    13         <p class="#GET{affichage}" id="poubelle">
    14                 <a class="mediabox" href="[(#URL_PAGE{formulaire_poubelle}|parametre_url{idresa,#GET{id}}|parametre_url{date_debut,#GET{date_debut}})]">
    15                 <img id="poubelle" src="#CHEMIN{img/supprimer-32.png}" alt="poubelle" /></a>
    16         </p>
     1[(#ENV{id_reservation}|oui)
     2        [(#AUTORISER{supprimer,orr_reservation,#ENV{id_ressource}})
     3        <div id="poubelle">
     4                <a class="mediabox" href="[(#URL_PAGE{formulaire_poubelle}
     5                        |parametre_url{idresa,#ENV{id_reservation}}
     6                        |parametre_url{id_ressource,#ENV{id_ressource}}
     7                        |parametre_url{jourj,#ENV{jourj}})]"
     8                        title="<:orr:supprimer:>">
     9                <img id="poubelle" src="#CHEMIN{img/supprimer-32.png}" alt="<:orr:supprimer:>" />
     10                <br /><:orr:supprimer:></a>
     11        </div>]
    1712]
    18 
    1913<h1 class="box_resa"><:orr:reserver:></h1>
    2014<div class="ajax">
    21         #FORMULAIRE_RESERV{#ENV{id_ressource},#GET{date_debut},#GET{date_fin},#GET{id}}
     15        #FORMULAIRE_RESERV{#ENV{id_ressource},#ENV{ma_date},#ENV{id_reservation},#ENV{jourj}}
    2216</div>
  • _plugins_/orr/trunk/formulaires/configurer_orr.html

    r78426 r78965  
    2121                        </ul>
    2222                </fieldset>
     23                <fieldset>
     24                        <legend><:orr:legend_heures_defaut:></legend>
     25                        <ul>
     26                                <li class="editer_heure_debut">
     27                                        <label for="heure_debut"><:orr:label_heure_debut:>:</label>
     28                                        <div class="choix">
     29                                                 <input class="timepicker" type="text" name="heure_debut" id="heure_debut" value="#ENV{heure_debut,00:00:00}" />
     30                                        </div>
     31                                </li>
     32                                <li class="editer_heure_fin">
     33                                        <label for="heure_fin"><:orr:label_heure_fin:>:</label>
     34                                        <div class="choix">
     35                                                 <input class="timepicker" type="text" name="heure_fin" id="heure_fin" value="#ENV{heure_fin,00:00:00}" />
     36                                        </div>
     37                                </li>
     38                        </ul>
     39                </fieldset>
     40               
    2341
    24                 <p class="boutons">
    25                         <input type="submit" class="submit" value="<:bouton_valider:>" />
    26                 </p>
     42                <p class="boutons"><input type="submit" class="submit" value="<:bouton_valider:>" /></p>
    2743        </div></form>
    2844</div>
     45<script type="text/javascript">
     46    jQuery(function(){
     47                jQuery('.timepicker').timepicker({
     48                        timeFormat: 'hh:mm:ss',
     49                        stepHour: 1,
     50                        stepMinute: 5,
     51                        minuteGrid:15,
     52                        hourGrid:4,
     53                        addSliderAccess: true,
     54                        sliderAccessArgs: { touchonly: false }
     55                });
     56        });
     57</script>
  • _plugins_/orr/trunk/formulaires/reserv.html

    r78839 r78965  
    11<div class="formulaire_spip formulaire_#FORM">
    2 
    32    [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    43    [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    54
    6     [(#ENV{editable}|oui)
    75    <form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
    8                 #ACTION_FORMULAIRE{#ENV{action}}
     6                [(#ACTION_FORMULAIRE{#ENV{action}})]
    97                <ul>
    108            [(#SAISIE{input,nom_reservation,obligatoire}
    119                {label=<:orr:nom_de_la_reservation:>})]
    12 
    13             [(#SAISIE{selection_multiple,liste_ressources}
    14                 {cacher_option_intro=true}
    15                 {size=4}
    16                 {label=<:orr:liste_ressources:>}
    17                 {defaut=#ENV{ressource_semaine}}
    18                 {datas=#ENV{Tressources}})]
    19                     <span id="ctrl_clic">(<:orr:ctrl_clic:>)</span><br />
    20 
     10           
     11            [(#REM) pour les ressources on n'affiche que celles autorisées donc pas de SAISIE ]
     12            <B_ressources>
     13                        <li class="editer editer_liste_ressources saisie_selection_multiple">
     14                                <label for="champ_liste_ressources"><:orr:liste_ressources:></label>
     15                                <select size="4" multiple="multiple" id="champ_liste_ressources" name="liste_ressources[]">
     16            <BOUCLE_ressources(ORR_RESSOURCES){par orr_ressource_nom}{si !#ENV{id_reservation}}>
     17                                [(#AUTORISER{creer,orr_reservation,#ID_ORR_RESSOURCE}|oui)
     18                                <option value="#ID_ORR_RESSOURCE"[ (#ID_ORR_RESSOURCE|=={#ENV{id_ressource}}|oui)selected="selected"]>#ORR_RESSOURCE_NOM</option>]
     19            </BOUCLE_ressources>
     20                                </select>
     21                                <span id="ctrl_clic">(<:orr:ctrl_clic:>)</span>
     22            </li>
     23            </B_ressources>
     24           
    2125            [(#SAISIE{input,date_debut,obligatoire}
    2226                {label=<:orr:date_de_debut:>}
     
    2731                {class=datepicker})]
    2832
    29                         [(#CONFIG*{champs_extras_spip_orr_reservations}|oui) <INCLURE{fond=inc/formulaire_reservation_champs_extra}{env}>]
     33                        [(#CONFIG*{champs_extras_spip_orr_reservations}|oui)
     34                                <INCLURE{fond=inc/formulaire_reservation_champs_extra}{env}>]
    3035                </ul>
    3136                <p class="boutons"> <input type="submit" id="envoyer" class="submit" value="<:bouton_enregistrer:>" /></p>
    3237    </div></form>
    33     ]
    3438</div>
    3539
    36 <script>
     40<script type="text/javascript">
    3741    jQuery(function(){
    38         jQuery('.datepicker').datetimepicker({
    39             timeFormat: 'hh:mm:ss',
    40             stepHour: 1,
    41             stepMinute: 15,
    42             minuteGrid:15,
    43             hourGrid:4,
    44             addSliderAccess: true,
     42                jQuery('#champ_date_debut').datetimepicker({
     43                        timeFormat: 'hh:mm:ss',
     44                        stepHour: 1,
     45                        stepMinute: 15,
     46                        minuteGrid:15,
     47                        hourGrid:4,
     48                        addSliderAccess: true,
    4549                        sliderAccessArgs: { touchonly: false },
    4650                        onClose: function(dateText, inst) {
    47                                 var endDateTextBox = $('#champ_date_fin');
    48                                 if (endDateTextBox.val() != '') {
    49                                         var testStartDate = new Date(dateText);
    50                                         var testEndDate = new Date(endDateTextBox.val());
    51                                         if (testStartDate > testEndDate)
    52                                         endDateTextBox.val(dateText);
     51                                if (jQuery('#champ_date_fin').val() != '') {
     52                                        var date_debut = new Date(jQuery.datepicker.parseDateTime("dd/mm/yy", "HH:mm:ss", dateText));
     53                                        var date_fin = jQuery('#champ_date_fin').val();
     54                                        date_fin = new Date(jQuery.datepicker.parseDateTime("dd/mm/yy", "HH:mm:ss", date_fin));
     55                                        if (date_debut > date_fin)
     56                                                jQuery('#champ_date_fin').val(dateText);
    5357                                }
    5458                                else {
    55                                         endDateTextBox.val(dateText);
     59                                        jQuery('#champ_date_fin').val(dateText);
    5660                                }
    57                         },
    58                         onSelect: function (selectedDateTime){
    59                                 var start = $(this).datetimepicker('getDate');
    60                                 $('#champ_date_fin').datetimepicker('option', 'minDate', new Date(start.getTime()));
     61                                jQuery('#champ_date_fin').datetimepicker('option', 'minDate', date_debut);
    6162                        }
    62             });
    63          jQuery('#champ_date_fin').datetimepicker({
     63                });
     64        jQuery('#champ_date_fin').datetimepicker({
     65                        timeFormat: 'hh:mm:ss',
     66                        stepHour: 1,
     67                        stepMinute: 15,
     68                        minuteGrid:15,
     69                        hourGrid:4,
     70                        addSliderAccess: true,
     71                        sliderAccessArgs: { touchonly: false },
    6472                        onClose: function(dateText, inst) {
    65                                 var startDateTextBox = $('#champ_date_debut');
    66                                 if (startDateTextBox.val() != '') {
    67                                         var testStartDate = new Date(startDateTextBox.val());
    68                                         var testEndDate = new Date(dateText);
    69                                         if (testStartDate > testEndDate)
    70                                                 startDateTextBox.val(dateText);
     73                                if (jQuery('#champ_date_debut').val() != '') {
     74                                        var date_debut =jQuery('#champ_date_debut').val();
     75                                        date_debut =  new Date(jQuery.datepicker.parseDateTime("dd/mm/yy", "HH:mm:ss", date_debut));
     76                                        var date_fin = new Date(jQuery.datepicker.parseDateTime("dd/mm/yy", "HH:mm:ss", dateText));
     77                                        if (date_debut > date_fin)
     78                                                jQuery('#champ_date_debut').val(dateText);
    7179                                }
    7280                                else {
    73                                         startDateTextBox.val(dateText);
     81                                        jQuery('#champ_date_debut').val(dateText);
    7482                                }
    75                         },
    76                         onSelect: function (selectedDateTime){
    77                                 var end = $(this).datetimepicker('getDate');
    78                                 jQuery('#champ_date_debut').datetimepicker('option', 'maxDate', new Date(end.getTime()) );
     83                                jQuery('#champ_date_debut').datetimepicker('option', 'maxDate', date_fin);
    7984                        }
    8085        });
     86
    8187    });
    8288</script>
  • _plugins_/orr/trunk/formulaires/reserv.php

    r78837 r78965  
    11<?php
    22
    3 function formulaires_reserv_charger_dist($idressource,$date_deb,$date_f,$idresa=false){
    4     // test si l'utilisateur à le droit de creer une résa pour la ressource active
    5     include_spip('inc/autoriser');
    6     if ($idressource AND !autoriser('creer','orr_reservation',intval($idressource)))
    7         return exit;
    8 
     3function formulaires_reserv_charger_dist($idressource, $date_deb=false, $idresa=false, $jourj='', $vue=''){
    94    include_spip('inc/config');
    10     list($dated,$heured)            = explode(' ',$date_deb);
    11     list($anneed,$moisd,$jourd)     = explode('-',$dated);
    12     list($heured,$minuted,$econded) = explode(':',$heured);
    13     $date_deb = date("d/m/Y H:i:s", mktime($heured, $minuted, $seconded, $moisd, $jourd, $anneed));
    14 
    15     list($datef,$heuref)            = explode(' ',$date_f);
    16     list($anneef,$moisf,$jourf)     = explode('-',$datef);
    17     list($heuref,$minutef,$econdef) = explode(':',$heuref);
    18     $date_f = date("d/m/Y H:i:s", mktime($heuref, $minutef, $secondef, $moisf, $jourf, $anneef));
    19    
    20     //Récup des noms de ressource, si c'est une mise à jour, on ne récupère que la ressource de la résa selectionnée
     5    // mise à jour: récup les infos de la résa selectionnée
    216    if ($idresa) {
    22         $result    = sql_allfetsel('id_orr_ressource,orr_ressource_nom','spip_orr_ressources','id_orr_ressource='.intval($idressource));
    237                $vals_resa = sql_fetsel('*', 'spip_orr_reservations', 'id_orr_reservation='.intval($idresa));
    248        $nom_resa  = $vals_resa['orr_reservation_nom'];
     9        $date_debut = date("d/m/Y H:i:s", strtotime($vals_resa['orr_date_debut']));
     10        $date_fin = date("d/m/Y H:i:s", strtotime($vals_resa['orr_date_fin']));
    2511    }
    2612    else {
    27         $result   = sql_allfetsel('id_orr_ressource,orr_ressource_nom','spip_orr_ressources');
    2813        $nom_resa = "";
    29     }
    30     foreach ($result as $Tressource) {
    31         // Test si l'utilisateur à le droit de creer une résa pour cette ressource
    32         if (autoriser('creer','orr_reservation',intval($Tressource['id_orr_ressource'])))
    33             $Tressources[$Tressource['id_orr_ressource']] = $Tressource['orr_ressource_nom'];
     14        // recup heures par défaut de debut / fin dans les options de config
     15        if ($heure_debut = lire_config('orr/heure_debut'))
     16                        $date_debut = date("d/m/Y H:i:s", ($date_deb ? strtotime(str_replace('00:00:00', $heure_debut, $date_deb)) : date().' '.$heure_debut));
     17                else
     18                        $date_debut = date("d/m/Y H:i:s", ($date_deb ? strtotime($date_deb) : date().' 00:00:00'));
     19        if ($heure_fin = lire_config('orr/heure_fin'))
     20                        $date_fin = date("d/m/Y H:i:s", ($date_deb ? strtotime(str_replace('00:00:00', $heure_fin, $date_deb)) : date().' '.$heure_fin));
     21                else
     22                        $date_fin = date("d/m/Y H:i:s", ($date_deb ? strtotime($date_deb) : date().' 00:00:00'));
    3423    }
    3524
    3625    $valeurs = array(
    37         "nom_reservation"        => $nom_resa,
    38         "ressource_semaine"      => "$idressource",
    39         "Tressources"            => $Tressources,
    40         "date_debut"             => $date_deb,
    41         "date_fin"               => $date_f,
     26        "nom_reservation"   => $nom_resa,
     27        "id_ressource"      => $idressource,
     28        "date_debut"        => $date_debut,
     29        "date_fin"          => $date_fin,
    4230    );
    4331    // champs extra
     
    5341}
    5442
    55 function formulaires_reserv_verifier_dist($idressource,$date_deb,$date_f,$idresa){
    56     $date_debut      = _request('date_debut');
    57     $date_fin        = _request('date_fin');
     43function formulaires_reserv_verifier_dist($idressource, $date_deb, $idresa, $jourj, $vue){
     44    include_spip('inc/autoriser');
     45    // on passe les dates du timepicker en format d-m-a h:m:s pour que strtotime() soit capable de les utiliser
     46    $date_debut = str_replace('/','-',_request('date_debut'));
     47    $date_fin   = str_replace('/','-',_request('date_fin'));
    5848    $erreurs = array();
    59     //champs obligatoire
     49       
     50    //champs obligatoires
    6051    foreach (array ('nom_reservation','date_debut','date_fin') as $obligatoire) {
    6152        if (!_request($obligatoire))
    6253            $erreurs[$obligatoire] = _T("info_obligatoire");
    6354    }
     55    if (count($erreurs))
     56                return $erreurs;
    6457   
    6558    //format de date correct
    66     if (!isset($erreurs['date_debut'])){
    67         list ($dated,$tempsd)        = explode(' ',$date_debut);
    68         list ($jourd,$moisd,$anneed) = explode('/',$dated);
    69         if (!intval($jourd)or!intval($moisd)or!intval($anneed)or!preg_match("#^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$#", $tempsd)) {
    70             $erreurs['date_debut'] = _T('orr:erreur_reservation_format_date');
    71         }
     59    foreach (array('date_debut', 'date_fin') as $a_tester) {
     60                if (!intval(strtotime($$a_tester)))
     61                        $erreurs[$a_tester] = _T('orr:erreur_reservation_format_date');
    7262    }
    73     if (!isset($erreurs['date_fin'])){
    74         list ($datef,$tempsf)        = explode(' ',$date_fin);
    75         list ($jourf,$moisf,$anneef) = explode('/',$datef);
    76         if (!intval($jourf)or!intval($moisf)or!intval($anneef)or!preg_match("#^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$#", $tempsf)) {
    77             $erreurs['date_fin'] = _T('orr:erreur_reservation_format_date');
    78         }
     63    if (count($erreurs))
     64                return $erreurs;
     65
     66    // date de fin anterieure à la date de debut
     67    if (strtotime($date_debut) >= strtotime($date_fin)) {
     68        $erreurs['date_fin'] =_T('orr:erreur_reservation_date_fin_debut');
     69        return $erreurs;
    7970    }
     71   
     72        // faire l'array des ressources à traiter
     73        $liste_ressources = array();
     74        if ($idresa)
     75                $liste_ressources[] = intval($idressource);
     76        else {
     77                foreach (_request('liste_ressources') as $ress)
     78                        $liste_ressources[] = intval($ress);
     79        }
     80    // Il faut au moins une ressource !!
     81    if (!count($liste_ressources)) {
     82        $erreurs["liste_ressources"] = _T("orr:ressource_obligatoire");
     83        return $erreurs;
     84    }
     85   
     86        // tester si l'utilisateur a le droit de creer une résa pour les ressources sélectionnées
     87        foreach ($liste_ressources as $ress) {
     88                if (!autoriser('creer','orr_reservation', $ress))
     89                $erreurs['message_erreur'] = _T("orr:creation_autorisation_interdite");
     90        }
     91        if (count($erreurs))
     92                return $erreurs;
    8093
    81     // date de fin anterieur à la date de debut
    82     list($heured,$minuted,$seconded) = explode(':',$tempsd);
    83     list($heuref,$minutef,$secondef) = explode(':',$tempsf);
    84     $timestampd = mktime(intval($heured),$minuted,$seconded,$moisd,$jourd,$anneed);
    85     $timestampf = mktime(intval($heuref),$minutef,$secondef,$moisf,$jourf,$anneef);
    86     if ($timestampd>=$timestampf){
    87         $erreurs['date_fin'] =_T('orr:erreur_reservation_date_fin_debut');
    88     }
    89     // Il faut au moins une ressource !!
    90     if (!_request('liste_ressources')) {
    91         $erreurs["liste_ressources"] = _T("orr:ressource_obligatoire");
    92     }
    93     else {
    94         // les dates choisies sont libres
    95         $liste_ressources = array();
    96         // Si C'est une mise à jour, on ne traite que de la ressource sélectionnée)
    97         if ($idresa)
    98             $liste_ressources[] = $idressource;
    99         // fabrique un array : liste_ressources de toutes les ressources
    100         else
    101             $liste_ressources = _request('liste_ressources');
     94        $date_debut = date("Y-m-d H:i:s", strtotime($date_debut));
     95        $date_fin   = date("Y-m-d H:i:s", strtotime($date_fin));
    10296
    103         $date_debut = date("Y-m-d H:i:s", mktime (intval($heured),$minuted,0, $moisd, $jourd, $anneed));
    104         $date_fin   = date("Y-m-d H:i:s", mktime (intval($heuref),$minutef,0, $moisf, $jourf, $anneef));
     97        $resultat = array();
     98        foreach ($liste_ressources as $idressource) {
     99                if (orr_compare_date($date_debut,$date_fin,$idressource,$idresa))
     100                        $resultat[] = $idressource;
     101        }
     102        if ($resultat){
     103                $nom_ressources = array();
     104                $nom_ressources = sql_allfetsel('orr_ressource_nom', 'spip_orr_ressources', sql_in('id_orr_ressource', $resultat));
     105                foreach ($nom_ressources as $ressource) {
     106                        $Tressources[] = $ressource['orr_ressource_nom'];
     107                }
     108                $pluriel = count($Tressources)>1 ? "les ressources" : "la ressource";
     109                $affichage_ressource = implode(", ",$Tressources);
     110                $erreurs['date_debut'] = _T('orr:erreur_reservation_date_occupe',array('ressource' => $affichage_ressource,'pluriel' => $pluriel));
     111                $erreurs['date_fin']   = _T('orr:erreur_reservation_date_occupe',array('ressource' => $affichage_ressource,'pluriel' => $pluriel));
     112        }
    105113
    106         $resultat = array();
    107         foreach ($liste_ressources as $idressource) {
    108             if (orr_compare_date($date_debut,$date_fin,$idressource,$idresa))
    109                 $resultat[] = $idressource;
    110         }
    111         if ($resultat){
    112             $nom_ressources = array();
    113             $nom_ressources = sql_allfetsel('orr_ressource_nom', 'spip_orr_ressources', sql_in('id_orr_ressource', $resultat));
    114             foreach ($nom_ressources as $ressource) {
    115                 $Tressources[] = $ressource['orr_ressource_nom'];
    116             }
    117             $pluriel = count($Tressources)>1 ? "les ressources" : "la ressource";
    118             $affichage_ressource = implode(", ",$Tressources);
    119             $erreurs['date_debut'] = _T('orr:erreur_reservation_date_occupe',array('ressource' => $affichage_ressource,'pluriel' => $pluriel));
    120             $erreurs['date_fin']   = _T('orr:erreur_reservation_date_occupe',array('ressource' => $affichage_ressource,'pluriel' => $pluriel));
    121         }
    122     }
    123114    return $erreurs;
    124115}
    125116
    126117
    127 function formulaires_reserv_traiter_dist($idressource,$date_deb,$date_f,$idresa){
     118function formulaires_reserv_traiter_dist($idressource, $date_deb, $idresa, $jourj, $vue){
    128119    $liste_ressources = array();
    129120        $nom_reservation  = _request('nom_reservation');
    130         $date_debut       = _request('date_debut');
    131         $date_fin         = _request('date_fin');
     121        $date_debut       = str_replace('/','-',_request('date_debut'));
     122        $date_fin         = str_replace('/','-',_request('date_fin'));
    132123
    133     // si C'est une mise à jour, on ne traite que de la ressource sélectionné)
     124    // fabriquer liste_ressources: array de toutes les ressources à traiter
     125    // si c'est une mise à jour, on ne traite que de la ressource sélectionnée
    134126    if ($idresa)
    135127        $liste_ressources[] = $idressource;
    136     // fabrique un array : liste_ressources de toutes les ressources
    137128    else {
    138129        $liste_ressources = _request('liste_ressources');
    139130    }
    140131
    141         list($jour_debut, $heure_debut) = explode(' ',$date_debut);
    142         list($jour_fin, $heure_fin)     = explode(' ',$date_fin);
    143         list($jourd,$moisd,$anneed)     = explode('/',$jour_debut);
    144         list($jourf,$moisf,$anneef)     = explode('/',$jour_fin);
    145 
    146         list($heured,$minuted) = explode(':',$heure_debut);
    147         list($heuref,$minutef) = explode(':',$heure_fin);
    148 
    149         $date_debut = date("Y-m-d H:i:s", mktime ($heured,$minuted,0, $moisd, $jourd, $anneed));
    150         $jourj      = date("Y-m-d", mktime ($heured,$minuted,0, $moisd, $jourd, $anneed));
    151         $date_fin   = date("Y-m-d H:i:s", mktime ($heuref,$minutef,0, $moisf, $jourf, $anneef));
     132        $date_debut = date("Y-m-d H:i:s", strtotime($date_debut));
     133//      $jourj      = date("Y-m-d", strtotime($date_debut));
     134        $date_fin   = date("Y-m-d H:i:s", strtotime($date_fin));
    152135       
    153136        $retour=array();
    154137        $retour['message_ok'] = _T("orr:reservation_enregistree");
    155         $retour['redirect']   = "spip.php?page=orr&jourj=$jourj";
     138        $retour['redirect']   = "spip.php?page=orr&jourj=$jourj&vue=$vue";
    156139
    157140        // utilisation API editer_objet pour l'insertion en BDD
     
    162145
    163146    // enregistrement pour chaque ressource
    164     include_spip('inc/autoriser');
    165147    foreach ($liste_ressources as $idressource) {
    166         if (!autoriser('creer','orr_reservation',intval($idressource)))
     148        if (!autoriser('creer','orr_reservation', intval($idressource)))
    167149            continue;
    168150            $set = array (
  • _plugins_/orr/trunk/formulaires/videresa.html

    r69046 r78965  
    11<div class="formulaire_spip formulaire_#FORM">
    2 
    32    [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    43    [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    54
    6     [(#ENV{editable}|oui)
     5    [(#AUTORISER{supprimer,orr_reservation,#ENV{id_ressource}})
    76    <form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
    8 
    97            #ACTION_FORMULAIRE{#ENV{action}}
    108             <input type='hidden' name='idresa' value='#ENV{idresa}' />
    11 
    12                         [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    13                 <!--extra-->
     9             <input type='hidden' name='id_ressource' value='#ENV{id_ressource}' />
    1410            <p class="boutons"> <input type="submit" id="envoyer" class="submit" value="<:bouton_valider:>" />
    1511            </p>
  • _plugins_/orr/trunk/formulaires/videresa.php

    r69046 r78965  
    11<?php
    22
    3 function formulaires_videresa_charger_dist($idresa,$date_debut){
    4         $valeurs = array(
    5                 //~ "idresa" => $idresa,
    6         );
     3function formulaires_videresa_charger_dist($idresa, $id_ressource, $jourj='', $vue=''){
     4        $valeurs = array();
    75        return $valeurs;
    86}
    97
    10 function formulaires_videresa_verifier_dist($idresa,$date_debut){
     8function formulaires_videresa_verifier_dist($idresa, $id_ressource, $jourj, $vue){
     9    include_spip('inc/autoriser');
    1110        $erreurs = array();
     11        if ($idresa != intval($idresa) OR $id_ressource != intval($id_ressource))
     12                $erreurs['message_erreur'] = _T("orr:supprimer_parametre_incorrect").' 1';
     13        // puisque l'autorisation teste sur la ressource, vérifier que l'id_ressource est bien lié avec l'id_resa...
     14        if (!sql_countsel('spip_orr_reservations_liens', array("objet = 'orr_ressource'", "id_orr_reservation = $idresa", "id_objet = $id_ressource")))
     15                $erreurs['message_erreur'] = _T("orr:supprimer_parametre_incorrect").' 2';
     16        if (!autoriser('supprimer', 'orr_reservation', $id_ressource))
     17                $erreurs['message_erreur'] = _T("orr:suppression_autorisation_interdite");
    1218        return $erreurs;
    1319}
    1420
    15 function formulaires_videresa_traiter_dist($idresa,$date_debut){
    16         $idresa = sql_quote($idresa);
     21function formulaires_videresa_traiter_dist($idresa, $id_ressource, $jourj, $vue){
    1722        $retour=array();
    18         list($date,$heure) = explode(' ',$date_debut);
     23//      list($date,$heure) = explode(' ',$date_debut);
    1924        $efface= sql_delete("spip_orr_reservations", "id_orr_reservation = $idresa");
    2025        if (!$efface){
    2126                $retour['message_erreur'] = "L'effacement de la réservation n° $idresa à échoué ";
    2227        }
    23         $retour['message_ok'] = "Bravo, vous avez supprimé définitivement la réservation n° $idresa !";
    24         $retour['redirect'] = "spip.php?page=orr&jourj=$date";
     28        $retour['message_ok'] = "La réservation n° $idresa est supprimée";
     29        $retour['redirect'] = "spip.php?page=orr&jourj=$jourj&vue=$vue";
    2530        return $retour;
    2631}
  • _plugins_/orr/trunk/inc/affichage_mois.html

    r78838 r78965  
    3737                            [(#REM) lien formulaire de réservation si autorisation pour au moins une ressource ]
    3838                            [(#GET{aut_creer}|oui)
    39                                                     <a  href="[(#URL_PAGE{formulaire_reservation}|parametre_url{ma_date,[(#GET{jourj}|affdate{'Y-m-d'}) 00:00:00]})]" class="mediabox"><img src="#CHEMIN{img/plus.png}" alt="plus"/></a>]
     39                                                    <a  href="[(#URL_PAGE{formulaire_reservation}
     40                                                                |parametre_url{ma_date,[(#GET{jourj}|affdate{'Y-m-d'}) 00:00:00]}
     41                                                                |parametre_url{jourj,#ENV{jourj}})]" class="mediabox lien_reserver">
     42                                                                <img src="#CHEMIN{img/plus.png}" alt="plus"/></a>]
    4043                                                        <BOUCLE_ressource(ORR_RESSOURCES){id_mot ?IN #ENV{id_mot}}>
    4144                                                                [(#AUTORISER{voir,orr_reservation,#ID_ORR_RESSOURCE})
    42                                                                 <INCLURE{fond=inc/affichage_resas}{idressource=#ID_ORR_RESSOURCE,jour=#GET{jourj}} />]
     45                                                                <INCLURE{fond=inc/affichage_resas}{idressource=#ID_ORR_RESSOURCE, jour=#GET{jourj}, jourj=#ENV{jourj}} />]
    4346                                                        </BOUCLE_ressource>
    4447                                                        #SET{jourj,#GET{jourj}|orr_plusunjour}
  • _plugins_/orr/trunk/inc/affichage_resas.html

    r78790 r78965  
    2626                        </span>
    2727                        [(#AUTORISER{modifier,orr_reservation,#ENV{idressource}})
    28                                 <a href="[(#URL_PAGE{formulaire_reservation}|parametre_url{'id_reservation',#ID_ORR_RESERVATION}|parametre_url{'id_ressource',#ENV{idressource}}|parametre_url{'date_debut',#ORR_DATE_DEBUT}|parametre_url{'date_fin',#ORR_DATE_FIN})]" class="mediabox">
     28                                <a href="[(#URL_PAGE{formulaire_reservation}
     29                                        |parametre_url{'id_reservation',#ID_ORR_RESERVATION}
     30                                        |parametre_url{'id_ressource',#ENV{idressource}}
     31                                        |parametre_url{jourj,#ENV{jourj}})]" class="mediabox lien_reserver">
    2932                                <img class="orr_stylo" src="#CHEMIN{img/crayon-16.png}" alt="orr_stylo" /></a>
    3033                        ]
  • _plugins_/orr/trunk/inc/affichage_semaine.html

    r78836 r78965  
    2727                                        <td id="jour#COMPTEUR_BOUCLE">[(#AUTORISER{creer,orr_reservation,#ID_ORR_RESSOURCE})
    2828                                                <a id="touche_#VALEUR_#ID_ORR_RESSOURCE"
    29                                                         href="[(#URL_PAGE{formulaire_reservation}|parametre_url{id_ressource,#ID_ORR_RESSOURCE}|parametre_url{ma_date,#GET{#VALEUR}})]"
    30                                                         class="mediabox"><img src="#CHEMIN{img/plus.png}" alt="plus"/></a>]
    31                                                 <INCLURE{fond=inc/affichage_resas}{idressource=#ID_ORR_RESSOURCE,jour=#GET{#VALEUR}} />
     29                                                        href="[(#URL_PAGE{formulaire_reservation}
     30                                                                |parametre_url{id_ressource,#ID_ORR_RESSOURCE}
     31                                                                |parametre_url{ma_date,#GET{#VALEUR}}
     32                                                                |parametre_url{jourj,#ENV{jourj}})]"
     33                                                        class="mediabox lien_reserver"><img src="#CHEMIN{img/plus.png}" alt="plus"/></a>]
     34                                                <INCLURE{fond=inc/affichage_resas}{idressource=#ID_ORR_RESSOURCE, jour=#GET{#VALEUR}, jourj=#ENV{jourj}} />
    3235                                        </td>
    3336                                </BOUCLE_ligne>
  • _plugins_/orr/trunk/lang/orr_fr.php

    r78814 r78965  
    2020        'couleur' => 'Couleur',
    2121        'ctrl_clic' => 'Ctrl + clic pour sélection multiple',
     22        'creation_autorisation_interdite' => 'Vous n\'avez pas les droits pour créer des réservations pour cette ressource',
    2223
    2324        // D
     
    2930
    3031        // E
    31         'erreur_reservation_date_fin_debut'=>'date de fin antérieur  ou égale à la date de début',     
     32        'erreur_reservation_date_fin_debut'=>'date de fin antérieur ou égale à la date de début',       
    3233        'erreur_reservation_date_occupe'=>'Pour @pluriel@ : @ressource@, vos dates de réservations ne sont pas libres !',
    3334        'erreur_reservation_format_date'=>'Ce format de date n\'est pas reconnu.',     
     
    7677        'legend_affichage_planning' => 'Affichage du planning',
    7778        'label_vue_pardefaut' => 'Choix de la vue par défaut',
    78     'liste_ressources' => 'Ajouter des ressources',
     79    'liste_ressources' => 'Choix des ressources',
     80        'legend_heures_defaut' => 'Heures par défaut de début et fin des réservations',
     81        'label_heure_debut' => 'Heure de début',
     82        'label_heure_fin' => 'Heure de fin',
     83       
    7984       
    8085        // M
     
    108113        'suppression_autorisation_impossible_ressources_liees' => 'Cette autorisation est liée à des ressources: vous ne pouvez pas la supprimer',
    109114        'supprimer' => 'supprimer',
     115        'supprimer_resa' => 'Voulez-vous supprimer la réservation',
    110116        'semaine' => 'Semaine',
    111117        'semaine_precedente' => 'Semaine précédente',
    112118        'semaine_suivante' => 'Semaine suivante',
     119        'supprimer_parametre_incorrect' => 'un des parametres transmis est incorrect pour supprimer cette ressource',
    113120
    114121    // T
  • _plugins_/orr/trunk/orr.css

    r78813 r78965  
    1515
    1616/* Formulaire réservation */
    17 #poubelle {  float:right; padding-right:30px; }
    18 .poubelle_visible, .ressource_visible { display:auto; }
    19 .poubelle_cache, .ressource_cachee { display:none; }
     17#poubelle {  float:right; padding-right: 10px; }
     18.ressource_visible { display:auto; }
     19.ressource_cachee { display:none; }
    2020.orr_stylo { float:left; }
    2121h1.box_resa { background-color: #DDD; }
     22.formulaire_reserv li label { font-weight: bold; }
    2223
    2324/* commun semaine/mois */   
     
    3233.dernier { border-top : 1px solid red ; border-bottom : 1px solid red ; border-right : 1px solid red ; margin-bottom : 0.5em ;}
    3334.unique { margin-bottom : 0.5em ;}
     35
    3436/* Affichage semaine */
    3537#tableau_semaine th { padding : 0.5em 1em; }
     
    6365/* date-picker
    6466#datepickers { font-size: 0.9em; }
    65 */
     67
     68
     69/* mediabox pour le form de résa */
     70#cboxTitle, #cboxCurrent, #cboxNext, #cboxPrevious, #cboxSlideshow { display: none !important; }
     71
     72/* timepicker dans la mediabox de resa */
     73.ui-timepicker-div dl dd { margin-top: 15px; }
  • _plugins_/orr/trunk/paquet.xml

    r78790 r78965  
    22        prefix="orr"
    33        categorie="divers"
    4         version="2.0.4"
     4        version="2.0.5"
    55        etat="dev"
    66        compatibilite="[3.0.1;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.