source: spip-zone/_plugins_/tickets/branches/v1/inclure/liste_tickets.html @ 52694

Last change on this file since 52694 was 52694, checked in by kent1@…, 8 years ago

ces liens ne sont pas véritablement des actions et doivent être considérés autrement

File size: 14.5 KB
Line 
1[(#REM)
2
3        Inclure créant une liste de tickets
4       
5        Les paramètres possibles sont :
6       
7        -* titre = string                               Le titre du bloc (sinon le bloc n'aura pas de titre)
8        -* date_sens = -1|1                             Le sens de tri de la date
9        -* id_auteur = int                              Un id_auteur numérique
10        -* auteurs = array                              Un array d'id_auteur
11        -* id_auteur_non = int/array    Un id numérique ou un array des id_auteur dont on ne souhaite pas afficher les tickets
12        -* id_assigne = int                             Un id_auteur numérique à qui aurait été assigné les tickets
13        -* assignes = array                             Un array d'id_assigne
14        -* id_assigne_non = int/array   Un id numérique ou un array des id_assigne que l'on ne souhaite pas voir
15        -* tracker = int                                L'id du tracker (1|2|3|4), anciennement type
16        -* trackers = array                             Un array de trackers
17        -* severite = int                               L'id de severite
18        -* severites = array                    Un array de severites
19        -* statut = string                              Le statut
20        -* statuts = array                              Un array de statuts
21        -* version = string                             La version
22        -* jalon = string                               Le jalon
23        -* composant = string                   Le composant
24        -* projet = string                              Le projet
25        -* sticked = oui|''                             N'afficher que les tickets épinglés ou pas
26        -* order = string                               Le paramètre de tri (défaut date mais peut être maj|titre|tracker|jalon|version|composant|projet|severite|id_ticket)
27        -* pagination = int                             Le nombre d'élément à afficher dans la pagination
28        -* recherche = string                   Une chaine recherchée dans les tickets
29        -* afficher_filtres                             Affiche les filtres passés en argument
30        -* date_debut = date (sql)              La date des premiers à afficher
31        -* date_fin = date (sql)                La date des derniers à afficher
32        -* class = string                               Une classe spécifique appliquée au bloc parent
33]
34
35#CACHE{0}
36[(#SET{defaut_tri,#ARRAY{
37        date,#ENV{date_sens,-1},
38        maj,#ENV{date_sens,-1},
39        titre,1,
40        tracker,1,
41        jalon,1,
42        version,1,
43        composant,1,
44        projet,1,
45        severite,1,
46        id_ticket,1
47}})
48][(#SET{hash_pagination,[_tickets_(#ENV{titre}|sinon{pas de chance}|md5|substr{0,4})]})]
49[(#REM) Noisette d'affichage d'une liste detaillee des tickets suivant des criteres passes en arguments]
50#SET{champs_optionnels,#ARRAY}
51#SET{champs, #ARRAY{projet,projets,composant,composants,version,versions,jalon,jalons}}
52<BOUCLE_champs_optionnels(POUR) {tableau #GET{champs}}>
53[(#VALEUR|tickets_champ_optionnel_actif|oui)
54        #SET{champs_optionnels,#GET{champs_optionnels}|push{#CLE}}
55]
56</BOUCLE_champs_optionnels>
57#SET{tout_assignes,#ARRAY}
58<BOUCLE_tout_assignes(TICKETS){fusion id_assigne}>#SET{tout_assignes,#GET{tout_assignes}|push{#ID_ASSIGNE}}</BOUCLE_tout_assignes>
59#SET{tout_auteurs,#ARRAY}
60<BOUCLE_tout_auteurs(TICKETS){fusion id_auteur}>#SET{tout_auteurs,#GET{tout_auteurs}|push{#ID_AUTEUR}}</BOUCLE_tout_auteurs>
61#SET{tout_statuts,#ARRAY}
62<BOUCLE_statuts(TICKETS){fusion statut}>#SET{tout_statuts,#GET{tout_statuts}|push{#STATUT}}</BOUCLE_statuts>
63#SET{tout_trackers,#ARRAY}
64<BOUCLE_trackers(TICKETS){fusion tracker}>#SET{tout_trackers,#GET{tout_trackers}|push{#TRACKER}}</BOUCLE_trackers>
65#SET{tout_severites,#ARRAY}
66<BOUCLE_severites(TICKETS){fusion severite}>#SET{tout_severites,#GET{tout_severites}|push{#SEVERITE}}</BOUCLE_severites>
67
68<B_detaillee>
69<div class="tickets[ (#ENV{class})]">
70[<h3>(#ENV{titre})[ ((#GRAND_TOTAL))]</h3>]
71
72<BOUCLE_si_afficher_filtres(CONDITION){si #ENV{afficher_filtres}|=={oui}|oui}>
73        [(#SET{url_defiltrer,[(#SELF|parametre_url{recherche|date_debut|date_fin|statut|trackers|tracker|projet|composant|jalon|severite|severites|version|auteurs|id_auteur|assignes|id_assigne|navigateur,''})]})]
74        [(#ENV{recherche}|oui)
75                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{recherche,''})]})]
76                <p><:tickets:champ_recherche:> #ENV{recherche}</p>
77        ][(#ENV{date_debut}|oui)
78                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{date_debut,''})]})]
79                <p><:tickets:champ_date_debut:> [(#ENV{date_debut}|affdate)]</p>
80        ][(#ENV{date_fin}|oui)
81                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{date_fin,''})]})]
82                <p><:tickets:champ_date_fin:> [(#ENV{date_fin}|affdate)]</p>
83        ]
84        <B_pour_statuts>
85        [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{statuts,''})]})]
86        <p><:tickets:champ_statut:> 
87        <BOUCLE_pour_statuts(POUR){tableau #ENV{statuts,#ARRAY}}{', '}>[(#VALEUR|tickets_texte_statut)]</BOUCLE_pour_statuts>
88        </p>
89        </B_pour_statuts>
90        <B_pour_severites>
91        [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{severites,''})]})]
92        <p><:tickets:champ_type:> 
93        <BOUCLE_pour_severites(POUR){tableau #ENV{severites}}{', '}>[(#VALEUR|tickets_texte_severite)]</BOUCLE_pour_severites>
94        </p>
95        </B_pour_severites>
96        [(#ENV{severite}|oui)
97                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{severite,''})]})]
98                <p><:tickets:champ_severite:> [(#ENV{severite}|tickets_texte_severite)]</p>
99        ]
100        <B_pour_trackers>
101        [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{trackers,''})]})]
102        <p><:tickets:champ_type:> 
103        <BOUCLE_pour_trackers(POUR){tableau #ENV{trackers}}{', '}>[(#VALEUR|tickets_texte_tracker)]</BOUCLE_pour_trackers>
104        </p>
105        </B_pour_trackers>
106        [(#ENV{tracker}|oui)
107                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{tracker,''})]})]
108                <p><:tickets:champ_tracker:> [(#ENV{tracker}|tickets_texte_tracker)]</p>
109        ]
110        [(#ENV{projet}|oui)
111                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{projet,''})]})]
112                <p><:tickets:champ_projet:> #ENV{projet}</p>
113        ][(#ENV{composant}|oui)
114                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{composant,''})]})]
115                <p><:tickets:champ_composant:> #ENV{composant}</p>
116        ][(#ENV{jalon}|oui)
117                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{jalon,''})]})]
118                <p><:tickets:champ_jalon:> #ENV{jalon}</p>
119        ][(#ENV{version}|oui)
120                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{version,''})]})]
121                <p><:tickets:champ_version:> #ENV{version}</p>
122        ][(#ENV{navigateur}|oui)
123                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{navigateur,''})]})]
124                <p><:tickets:champ_navigateur:> #ENV{navigateur}</p>
125        ]
126        <B_auteurs>
127                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{auteurs,''})]})]
128                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{id_auteur,''})]})]
129                <p><:tickets:champ_id_auteur:> 
130                <BOUCLE_auteurs(AUTEURS){id_auteur IN #ENV{auteurs,#ENV{id_auteur}}}{', '}>
131                #NOM
132                </BOUCLE_auteurs>
133                </p>
134        </B_auteurs>
135        <B_assignes>
136                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{assignes,''})]})]
137                [(#SET{url_defiltrer,[(#GET{url_defiltrer}|parametre_url{id_assigne,''})]})]
138                <p><:tickets:champ_id_assigne:>
139                <BOUCLE_assignes(AUTEURS){id_auteur IN #ENV{assignes,#ENV{id_assigne}}}{', '}>
140                #NOM
141                </BOUCLE_assignes>
142                </p>
143        </B_assignes>
144        [(#ENV{url_defiltrer}|=={oui}|oui)
145        <div class="actions">
146                <a href="#GET{url_defiltrer}"><:tickets:lien_supprimer_filtres:></a>
147        </div>]
148</BOUCLE_si_afficher_filtres>
149<div class="ticket">
150[(#ANCRE_PAGINATION)]
151[<p class="pagination">(#PAGINATION)</p>]
152[(#COMPTEUR_BOUCLE|>{10}|oui)
153<p class="changer_pagination">
154        <:tickets:label_paginer_par:> 
155        [(#ENV{pagination_[(#GET{hash_pagination})],#ENV{pagination,10}}|=={10}|?{10,<a href="[(#SELF|parametre_url{pagination_[(#GET{hash_pagination})],10}|parametre_url{debut[(#GET{hash_pagination})],''})]" class="ajax bouton">10</a>})]
156        <span class="sep">|</span>
157        [(#ENV{pagination_[(#GET{hash_pagination})]}|=={50}|?{50,<a href="[(#SELF|parametre_url{pagination_[(#GET{hash_pagination})],50}|parametre_url{debut[(#GET{hash_pagination})],''})]" class="ajax bouton">50</a>})]
158        [(#COMPTEUR_BOUCLE|>{50}|oui)<span class="sep">|</span>
159        [(#ENV{pagination_[(#GET{hash_pagination})]}|=={100}|?{100,<a href="[(#SELF|parametre_url{pagination_[(#GET{hash_pagination})],100}|parametre_url{debut[(#GET{hash_pagination})],''})]" class="ajax bouton">100</a>})]]
160        [(#COMPTEUR_BOUCLE|>{100}|oui)<span class="sep">|</span>
161        [(#ENV{pagination_[(#GET{hash_pagination})]}|=={200}|?{200,<a href="[(#SELF|parametre_url{pagination_[(#GET{hash_pagination})],200}|parametre_url{debut[(#GET{hash_pagination})],''})]" class="ajax bouton">200</a>})]]
162</p>]
163<table class="spip">
164        <thead>
165                <tr>
166                        <th></th>
167                        <th>
168                                [(#ENV{tri_detaillee}|=={id_ticket}|non)[(#TRI{id_ticket,#,ajax})]]
169                                [(#ENV{tri_detaillee}|=={id_ticket}|oui)
170                                        [(#ENV{sens_detaillee}|=={1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'>',#,ajax})]]
171                                        [(#ENV{sens_detaillee}|=={-1}|oui)[(#TRI{'<',#,ajax})]]]
172                        </th>
173                        <th>
174                                [(#ENV{tri_detaillee}|=={titre}|non)[(#TRI{titre,<:tickets:champ_titre:>,ajax})]]
175                                [(#ENV{tri_detaillee}|=={titre}|oui)
176                                        [(#ENV{sens_detaillee}|=={1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'>',<:tickets:champ_titre:>,ajax})]]
177                                        [(#ENV{sens_detaillee}|=={-1}|oui)[(#TRI{'<',<:tickets:champ_titre:>,ajax})]]]
178                        </th>
179                        [(#ENV{tracker}|non)<th>
180                                [(#ENV{tri_detaillee}|=={tracker}|non)[(#TRI{tracker,<:tickets:champ_type:>,ajax})]]
181                                [(#ENV{tri_detaillee}|=={tracker}|oui)
182                                        [(#ENV{sens_detaillee}|=={1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'>',<:tickets:champ_type:>,ajax})]]
183                                        [(#ENV{sens_detaillee}|=={-1}|oui)[(#TRI{'<',<:tickets:champ_type:>,ajax})]]]
184                        </th>]
185                        <th>
186                                [(#ENV{tri_detaillee}|=={severite}|non)[(#TRI{severite,<:tickets:champ_importance:>,ajax})]]
187                                [(#ENV{tri_detaillee}|=={severite}|oui)
188                                        [(#ENV{sens_detaillee}|=={1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'>',<:tickets:champ_importance:>,ajax})]]
189                                        [(#ENV{sens_detaillee}|=={-1}|oui)[(#TRI{'<',<:tickets:champ_importance:>,ajax})]]]
190                        </th>
191                        [(#VAL{projet}|in_array{#GET{champs_optionnels,#ARRAY}}|oui)
192                                <th>
193                                        [(#ENV{tri_detaillee}|=={projet}|non)[(#TRI{projet,<:tickets:champ_projet:>,ajax})]]
194                                        [(#ENV{tri_detaillee}|=={projet}|oui)
195                                                [(#ENV{sens_detaillee}|=={1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'>',<:tickets:champ_projet:>,ajax})]]
196                                                [(#ENV{sens_detaillee}|=={-1}|oui)[(#TRI{'<',<:tickets:champ_projet:>,ajax})]]]
197                                </th>
198                        ]
199                        [(#VAL{composant}|in_array{#GET{champs_optionnels,#ARRAY}}|oui)
200                                <th>
201                                        [(#ENV{tri_detaillee}|=={composant}|non)[(#TRI{composant,<:tickets:champ_composant:>,ajax})]]
202                                        [(#ENV{tri_detaillee}|=={composant}|oui)
203                                                [(#ENV{sens_detaillee}|=={1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'>',<:tickets:champ_composant:>,ajax})]]
204                                                [(#ENV{sens_detaillee}|=={-1}|oui)[(#TRI{'<',<:tickets:champ_composant:>,ajax})]]]
205                                </th>
206                        ]
207                        [(#VAL{version}|in_array{#GET{champs_optionnels,#ARRAY}}|oui)
208                                <th>
209                                        [(#ENV{tri_detaillee}|=={version}|non)[(#TRI{version,<:tickets:champ_version:>,ajax})]]
210                                        [(#ENV{tri_detaillee}|=={version}|oui)
211                                                [(#ENV{sens_detaillee}|=={1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'>',<:tickets:champ_version:>,ajax})]]
212                                                [(#ENV{sens_detaillee}|=={-1}|oui)[(#TRI{'<',<:tickets:champ_version:>,ajax})]]]
213                                </th>
214                        ]
215                        [(#VAL{jalon}|in_array{#GET{champs_optionnels,#ARRAY}}|oui)
216                                <th>
217                                        [(#ENV{tri_detaillee}|=={jalon}|non)[(#TRI{jalon,<:tickets:champ_jalon:>,ajax})]]
218                                        [(#ENV{tri_detaillee}|=={jalon}|oui)
219                                                [(#ENV{sens_detaillee}|=={1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'>',<:tickets:champ_jalon:>,ajax})]]
220                                                [(#ENV{sens_detaillee}|=={-1}|oui)[(#TRI{'<',<:tickets:champ_jalon:>,ajax})]]]
221                                </th>
222                        ]
223                        <th>
224                                [(#ENV{tri_detaillee}|!={date}|et{#ENV{tri_detaillee}|oui}|oui)[(#TRI{date,<:tickets:champ_date:>,ajax})]]
225                                [(#ENV{tri_detaillee}|=={date}|ou{#ENV{tri_detaillee}|non}|oui)
226                                        [(#ENV{sens_detaillee}|=={1}|oui)[(#TRI{'>',<:tickets:champ_date:>,ajax})]]
227                                        [(#ENV{sens_detaillee}|=={-1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'<',<:tickets:champ_date:>,ajax})]]]
228                        </th>
229                        <th><abbr title="<:tickets:champ_maj_long:>">
230                                [(#ENV{tri_detaillee}|=={maj}|non)[(#TRI{maj,<:tickets:champ_maj:>,ajax})]]
231                                [(#ENV{tri_detaillee}|=={maj}|oui)
232                                        [(#ENV{sens_detaillee}|=={1}|oui)[(#TRI{'>',<:tickets:champ_maj:>,ajax})]]
233                                        [(#ENV{sens_detaillee}|=={-1}|ou{#ENV{sens_detaillee}|non}|oui)[(#TRI{'<',<:tickets:champ_maj:>,ajax})]]]
234                        </abbr></th>
235                </tr>
236        </thead>
237        <tbody
238        <BOUCLE_detaillee(TICKETS){recherche?}{id_auteur?}{id_auteur IN #ENV{auteurs,#GET{tout_auteurs}}}{id_auteur !IN #ENV{id_auteur_non,#ARRAY{0,999999999999}}}{id_assigne?}{id_assigne IN #ENV{assignes,#GET{tout_assignes}}}{id_assigne !IN #ENV{id_assigne_non,#ARRAY{0,999999999999}}}{statut IN #ENV{statuts,#GET{tout_statuts}}}{tracker?}{tracker IN #ENV{trackers,#GET{tout_trackers}}}{severite?}{severite IN #ENV{severites,#GET{tout_severites}}}{version?}{jalon?}{composant?}{projet?}{sticked?}{tri #ENV{order,date},#GET{defaut_tri}}{date > #ENV{date_debut,2000-01-01}}{date < #ENV{date_fin,2100-01-01}}{pagination #ENV{pagination_#GET{hash_pagination},#ENV{pagination,10}} #GET{hash_pagination}}>
239                <tr class="[(#COMPTEUR_BOUCLE|alterner{odd,even})]">
240                        <td>[(#STATUT|tickets_icone_statut{true})]</td>
241                        <td><strong class="#EDIT{titre}"><a href="[(#URL_TICKET)]">##ID_TICKET</a></strong></td>
242                        <td>
243                                <a href="[(#URL_TICKET)]">#TITRE</a><br />
244                                [(#TEXTE|couper{160})]
245                        </td>
246                        [(#REM) Si le tracker est explicite, on ne l'affiche pas ]
247                        [(#ENV{tracker}|non)<td>[(#TRACKER|tickets_texte_tracker)]</td>]
248                        <td>
249                                [(#SEVERITE|tickets_icone_severite{true})]
250                                [&nbsp;(#SEVERITE|tickets_texte_severite)]
251                        </td>
252                        [(#VAL{projet}|in_array{#GET{champs_optionnels,#ARRAY}}|oui)
253                                <td class="#EDIT{projet}">[(#PROJET|sinon{-})]</td>
254                        ]
255                        [(#VAL{composant}|in_array{#GET{champs_optionnels,#ARRAY}}|oui)
256                                <td class="#EDIT{composant}">[(#COMPOSANT|sinon{-})]</td>
257                        ]
258                        [(#VAL{version}|in_array{#GET{champs_optionnels,#ARRAY}}|oui)
259                                <td class="#EDIT{version}">[(#VERSION|sinon{-})]</td>
260                        ]
261                        [(#VAL{jalon}|in_array{#GET{champs_optionnels,#ARRAY}}|oui)
262                                <td class="#EDIT{jalon}">[(#JALON|sinon{-})]</td>
263                        ]
264                        <td>[(#DATE|affdate)]</td>
265                        <td>[(#MAJ|affdate)]</td>
266                </tr>
267        </BOUCLE_detaillee>
268        </tbody>
269</table>
270[(#COMPTEUR_BOUCLE|>{10}|oui)
271<p class="changer_pagination">
272        <:tickets:label_paginer_par:> 
273        [(#ENV{pagination_[(#GET{hash_pagination})],#ENV{pagination,10}}|=={10}|?{10,<a href="[(#SELF|parametre_url{pagination_[(#GET{hash_pagination})],10}|parametre_url{debut[(#GET{hash_pagination})],''})]" class="ajax bouton">10</a>})]
274        <span class="sep">|</span>
275        [(#ENV{pagination_[(#GET{hash_pagination})]}|=={50}|?{50,<a href="[(#SELF|parametre_url{pagination_[(#GET{hash_pagination})],50}|parametre_url{debut[(#GET{hash_pagination})],''})]" class="ajax bouton">50</a>})]
276        [(#COMPTEUR_BOUCLE|>{50}|oui)<span class="sep">|</span>
277        [(#ENV{pagination_[(#GET{hash_pagination})]}|=={100}|?{100,<a href="[(#SELF|parametre_url{pagination_[(#GET{hash_pagination})],100}|parametre_url{debut[(#GET{hash_pagination})],''})]" class="ajax bouton">100</a>})]]
278        [(#COMPTEUR_BOUCLE|>{100}|oui)<span class="sep">|</span>
279        [(#ENV{pagination_[(#GET{hash_pagination})]}|=={200}|?{200,<a href="[(#SELF|parametre_url{pagination_[(#GET{hash_pagination})],200}|parametre_url{debut[(#GET{hash_pagination})],''})]" class="ajax bouton">200</a>})]]
280</p>]
281[<p class="pagination">(#PAGINATION)</p>]
282</div>
283</div>
284</B_detaillee>
Note: See TracBrowser for help on using the repository browser.