source: spip-zone/_plugins_/objets_disponibilites/branches/v1/saisies/dates_disponibles.html @ 114258

Last change on this file since 114258 was 114258, checked in by abelass@…, 7 months ago

v 1.2.1 Les utilisés, prendre en compte les statuts du contexte

File size: 5.9 KB
Line 
1[(#REM)
2
3        Action :
4                - Les dates disponibles pour un objet données.
5
6        Parametres :
7                - date_limite_debut : a partir de quand les dates sont affichées.
8                - date_limite_fin : limite de dates à afficher
9                - objet : l'objet poir lequel on veit calculer les disponibilités
10                - id_objet : l'identifiant de l'objet poir lequel on veit calculer les disponibilités
11                -       indisponible_decalage_debut : calcul des indisponibles, le nombre de jour à ajouter au début
12                indisponible_decalage_fin : calcul des indisponibles, le nombre de jour à ajouter à la fin
13                disponible_decalage_debut : calcul des disponibles, le nombre de jour à ajouter au début
14                disponible_decalage_fin : calcul des disponibles, le nombre de jour à ajouter à la fin
15                utilise_decalage_debut : calcul des utilisés, le nombre de jour à ajouter au début
16                utilise_decalage_fin : calcul des utilisés, le nombre de jour à ajouter à la fin
17                utilise_objet : l'objet à utiliser pour le calcul des dates utilisées,
18
19
20        Exemple d'appel :
21        [(#SAISIE{dates_disponibles, date_debut,        obligatoire=oui,
22                label=<:dates_outils:champ_date_debut_label:>,
23                objet=[(#ENV{location_objet}|objet_type)],
24                date_limite_debut=#ENV{date_limite_debut,#DATE},
25                date_limite_fin=#ENV{date_limite_fin,#DATE},
26                id_objet=#ENV{id_location_objet},
27                indisponible_decalage_debut=#ENV{indisponible_decalage_debut},
28                indisponible_decalage_fin=#ENV{indisponible_decalage_fin},
29                disponible_decalage_debut=#ENV{disponible_decalage_debut},
30                disponible_decalage_fin=#ENV{disponible_decalage_fin},
31                utilise_decalage_debut=#ENV{utilise_decalage_debut},
32                utilise_decalage_fin=#ENV{utilise_decalage_fin},
33                utilise_objet=#ENV{utilise_objet},
34                utilise_statuts=#ENV{utilise_statuts},
35        })]
36]
37#SET{valeur,''}
38[(#ENV*{valeur}|oui)
39        #SET{valeur,#ENV{valeur}}
40]
41
42[(#ENV{multiple}|oui)
43        [(#SET{valeur,[(#ENV*{valeur}|is_array|?{[(#ENV*{valeur})],[(#ENV*{valeur}|explode{','})]})]})]
44]
45
46#SET{date_actuelle,#ENV{date}}
47
48
49#SET{date_defaut,#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut,#GET{date_actuelle}}}}}
50[(#ENV{horaire}|non)
51        #SET{date_defaut,#GET{date_defaut}|formater_date{horaire_zero,d/m/Y H:i:s}}
52        [(#GET{valeur}|oui)
53                #SET{valeur,#GET{valeur}|formater_date{horaire_zero,d/m/Y}}
54        ]
55]
56
57[(#ENV{multiple}|oui)
58        #SET{date_actuelle,#ARRAY{#GET{date_actuelle}}
59]
60
61#SET{date_limite_debut,#ENV{date_limite_debut,#GET{date_actuelle}}}
62#SET{date_limite_fin,#ENV{date_limite_fin,#GET{date_actuelle}|date_relative_brut{+1 year, d-m-Y}}}
63
64#SET{contexte,#ARRAY{
65                date_limite_debut,#GET{date_limite_debut},
66                date_limite_fin,#GET{date_limite_fin},
67                format,d-m-Y,
68        }
69}
70
71#SET{dates, #GET{contexte}|dates_disponibles{#ENV**}}
72
73[(#GET{valeur}|oui)
74        #SET{dates,#GET{dates}|push{#GET{valeur}}
75]
76
77#SET{dates,#GET{dates}|do_trie_dates}
78#SET{date_min,#DATE|affdate{d/m/Y}}
79<BOUCLE_min(DATA){source tableau, #GET{dates}}{0,1}>
80        #SET{date_min,(#VALEUR|replace{'-','/'})}
81</BOUCLE_min>
82
83[(#INCLURE{
84        fond=saisies/input,
85        autocomplete=off,
86        min=#GET{date_min},
87        class=[(#ENV{class}) ]date,
88        placeholder=dd/mm/yyyy,
89        valeur=#GET{valeur},
90        env})]
91
92
93<script type="text/javascript">
94        var datesDisponibles = [(#GET{dates}|json_encode)];
95        function disponible(date) {
96                var jour = date.getDate();
97                if (jour < 10) {
98                        jour = '0' + jour;
99                }
100                var mois = date.getMonth() + 1;
101                if (mois < 10) {
102                        mois = '0' + mois;
103                }
104
105                dmy = jour  + "-" + mois + "-" + date.getFullYear();
106
107                if      ($.inArray(dmy, datesDisponibles) !== -1) {
108                        return [true, "","Available"];
109
110                } else {
111
112                        return [false,"","unAvailable"];
113                }
114        }
115        $(document).ready(function() {
116                $('#champ_#ENV{nom}').datepicker({
117                        buttonText: '<:afficher_calendrier|texte_script:>',
118                        buttonImage: '#CHEMIN_IMAGE{calendrier-16.png}',
119                        buttonImageOnly: true,
120                        closeText: '<:bouton_fermer|texte_script:>',
121                        prevText: '<:precedent|texte_script:>',
122                        nextText: '<:suivant|texte_script:>',
123                        currentText: '<:date_aujourdhui|texte_script:>',
124                        closeText: '<:bouton_fermer|texte_script:>',
125                        monthNames: [
126                                '<:date_mois_1|texte_script:>','<:date_mois_2|texte_script:>','<:date_mois_3|texte_script:>','<:date_mois_4|texte_script:>','<:date_mois_5|texte_script:>','<:date_mois_6|texte_script:>',
127                                '<:date_mois_7|texte_script:>','<:date_mois_8|texte_script:>','<:date_mois_9|texte_script:>','<:date_mois_10|texte_script:>','<:date_mois_11|texte_script:>','<:date_mois_12|texte_script:>'],
128                        monthNamesShort: [
129                                '<:date_mois_1_abbr|texte_script:>','<:date_mois_2_abbr|texte_script:>','<:date_mois_3_abbr|texte_script:>','<:date_mois_4_abbr|texte_script:>','<:date_mois_5_abbr|texte_script:>','<:date_mois_6_abbr|texte_script:>',
130                                '<:date_mois_7_abbr|texte_script:>','<:date_mois_8_abbr|texte_script:>','<:date_mois_9_abbr|texte_script:>','<:date_mois_10_abbr|texte_script:>','<:date_mois_11_abbr|texte_script:>','<:date_mois_12_abbr|texte_script:>'],
131                        dayNames: [
132                                '<:date_jour_1|texte_script:>','<:date_jour_2|texte_script:>','<:date_jour_3|texte_script:>','<:date_jour_4|texte_script:>',
133                                '<:date_jour_5|texte_script:>','<:date_jour_6|texte_script:>','<:date_jour_7|texte_script:>'],
134                        dayNamesShort: [
135                                '<:date_jour_1_abbr|texte_script:>','<:date_jour_2_abbr|texte_script:>','<:date_jour_3_abbr|texte_script:>','<:date_jour_4_abbr|texte_script:>',
136                                '<:date_jour_5_abbr|texte_script:>','<:date_jour_6_abbr|texte_script:>','<:date_jour_7_abbr|texte_script:>'],
137                        dayNamesMin: [
138                                '<:date_jour_1_initiale|texte_script:>','<:date_jour_2_initiale|texte_script:>','<:date_jour_3_initiale|texte_script:>','<:date_jour_4_initiale|texte_script:>',
139                                '<:date_jour_5_initiale|texte_script:>','<:date_jour_6_initiale|texte_script:>','<:date_jour_7_initiale|texte_script:>'],
140                        dateFormat: 'dd/mm/yy',
141                        defaultDate: [(#ENV{valeur,#GET{date_min}}|affdate{d/m/Y})],
142                        minDate: [(#ENV{valeur,#GET{date_min}}|affdate{d/m/Y})],
143                        gotoCurrent: true,
144                        beforeShowDay: disponible,
145                        changeMonth: true,
146                        changeYear: true,
147                        showOtherMonths: true,
148                        selectOtherMonths: true,
149                        firstDay: 1,
150                        yearRange: "c-60:c+40"
151                        });
152        });
153</script>
154
Note: See TracBrowser for help on using the repository browser.