Ajout du support des écritures ventilées.
[garradin.git] / templates / admin / membres / recherche.tpl
1 {include file="admin/_head.tpl" title="Recherche de membre" current="membres"}
2
3 {if $user.droits.membres >= Garradin\Membres::DROIT_ADMIN}
4 <ul class="actions">
5 <li><a href="{$admin_url}membres/">Liste des membres</a></li>
6 <li class="current"><a href="{$admin_url}membres/recherche.php">Recherche avancée</a></li>
7 <li><a href="{$admin_url}membres/recherche_sql.php">Recherche par requête SQL</a></li>
8 </ul>
9 {/if}
10
11
12 <form method="get" action="{$admin_url}membres/recherche.php" class="searchMember">
13 <fieldset>
14 <legend>Rechercher un membre</legend>
15 <dl>
16 <dt><label for="f_champ">Champ</label></dt>
17 <dd>
18 <select name="c" id="f_champ">
19 {foreach from=$champs_liste key="k" item="v"}
20 <option value="{$k|escape}"{form_field name="c" default=$champ selected=$k}>{$v.title|escape}</option>
21 {/foreach}
22 </select>
23 </dd>
24 <dt><label for="f_texte">Recherche</label></dt>
25 <dd id="f_free"><input id="f_texte" type="text" name="r" value="{$recherche|escape}" required="required" /></dd>
26 {foreach from=$champs_liste key="k" item="v"}
27 {if $v.type == 'select'}
28 <dd class="special" id="f_{$k|escape}">
29 <select name="r" disabled="disabled">
30 {foreach from=$v.options item="opt"}
31 <option value="{$opt|escape}"{form_field name="r" default=$recherche selected=$opt}>{$opt|escape}</option>
32 {/foreach}
33 </select>
34 </dd>
35 {elseif $v.type == 'multiple'}
36 <dd class="special" id="f_{$k|escape}">
37 <select name="r" disabled="disabled">
38 {foreach from=$v.options key="opt_k" item="opt"}
39 <option value="{$opt_k|escape}"{form_field name="r" default=$recherche selected=$opt_k}>{$opt|escape}</option>
40 {/foreach}
41 </select>
42 </dd>
43 {elseif $v.type == 'checkbox'}
44 <dd class="special" id="f_{$k|escape}">
45 <select name="r" disabled="disabled">
46 <option value="1"{form_field name="r" default=$recherche selected=1}>Oui</option>
47 <option value="0"{form_field name="r" default=$recherche selected=0}>Non</option>
48 </select>
49 </dd>
50 {/if}
51 {/foreach}
52 </dl>
53 <p class="submit">
54 <input type="submit" value="Chercher &rarr;" />
55 </p>
56 </fieldset>
57 </form>
58
59 {if $user.droits.membres >= Garradin\Membres::DROIT_ECRITURE}
60
61 <form method="post" action="{$admin_url}membres/action.php" class="memberList">
62
63 {if !empty($liste)}
64 <table class="list search">
65 <thead>
66 {if $user.droits.membres == Garradin\Membres::DROIT_ADMIN}<td class="check"><input type="checkbox" value="Tout cocher / décocher" onclick="checkUncheck();" /></td>{/if}
67 <td></td>
68 {foreach from=$champs_entete key="c" item="cfg"}
69 {if $champ == $c}
70 <th><strong>{$cfg.title|escape}</strong></th>
71 {else}
72 <td>{$cfg.title|escape}</td>
73 {/if}
74 {/foreach}
75 <td></td>
76 </thead>
77 <tbody>
78 {foreach from=$liste item="membre"}
79 <tr>
80 {if $user.droits.membres == Garradin\Membres::DROIT_ADMIN}<td class="check"><input type="checkbox" name="selected[]" value="{$membre.id|escape}" /></td>{/if}
81 <td class="num"><a href="{$admin_url}membres/fiche.php?id={$membre.id|escape}">{$membre.id|escape}</a></th>
82 {foreach from=$champs_entete key="c" item="cfg"}
83 {if $champ == $c}
84 <th><strong>{$membre[$c]|escape|display_champ_membre:$cfg}</strong></th>
85 {else}
86 <td>{$membre[$c]|escape|display_champ_membre:$cfg}</td>
87 {/if}
88 {/foreach}
89 <td class="actions">
90 {if !empty($membre.email)}<a class="icn" href="{$www_url}admin/membres/message.php?id={$membre.id|escape}" title="Envoyer un message">✉</a> {/if}
91 <a class="icn" href="modifier.php?id={$membre.id|escape}" title="Modifier la fiche membre">✎</a>
92 </td>
93 </tr>
94 {/foreach}
95 </tbody>
96 </table>
97
98 {if $user.droits.membres == Garradin\Membres::DROIT_ADMIN}
99 <p class="checkUncheck">
100 <input type="button" value="Tout cocher / décocher" onclick="checkUncheck();" />
101 </p>
102 <p class="actions">
103 <em>Pour les membres cochés :</em>
104 <input type="submit" name="move" value="Changer de catégorie" />
105 <input type="submit" name="delete" value="Supprimer" />
106 {csrf_field key="membres_action"}
107 </p>
108 {/if}
109
110 {elseif $recherche != ''}
111 <p class="alert">
112 Aucun membre trouvé.
113 </p>
114 {/if}
115
116 </form>
117
118 <script type="text/javascript">
119 {literal}
120 (function() {
121 var checked = false;
122
123 window.checkUncheck = function()
124 {
125 var elements = document.getElementsByTagName('input');
126 var el_length = elements.length;
127
128 for (i = 0; i < el_length; i++)
129 {
130 var elm = elements[i];
131
132 if (elm.type == 'checkbox')
133 {
134 if (checked)
135 elm.checked = false;
136 else
137 elm.checked = true;
138 }
139 }
140
141 checked = checked ? false : true;
142 return true;
143 }
144 }())
145 {/literal}
146 </script>
147 {else}
148 {if !empty($liste)}
149 <table class="list">
150 <thead>
151 <th>Membre</th>
152 <td></td>
153 </thead>
154 <tbody>
155 {foreach from=$liste item="membre"}
156 <tr>
157 <th>{$membre.identite|escape}</th>
158 <td class="actions">
159 {if !empty($membre.email)}<a href="{$www_url}admin/membres/message.php?id={$membre.id|escape}">Envoyer un message</a>{/if}
160 </td>
161 </tr>
162 {/foreach}
163 </tbody>
164 </table>
165 {else}
166 <p class="info">
167 Aucun membre trouvé.
168 </p>
169 {/if}
170 {/if}
171
172 <script type="text/javascript">
173 {literal}
174 (function() {
175 var current = false;
176
177 var selectField = function(elm)
178 {
179 if (current)
180 {
181 document.getElementById('f_' + current).style.display = 'none';
182 document.getElementById('f_' + current).querySelector('select').disabled = true;
183 current = false;
184 }
185
186 if (document.getElementById('f_' + elm.value))
187 {
188 document.getElementById('f_' + elm.value).style.display = 'block';
189 document.getElementById('f_' + elm.value).querySelector('select').disabled = false;
190 document.getElementById('f_free').style.display = 'none';
191 document.getElementById('f_texte').disabled = true;
192 current = elm.value;
193 }
194 else
195 {
196 document.getElementById('f_texte').disabled = false;
197 document.getElementById('f_free').style.display = 'block';
198 }
199
200 return true;
201 }
202
203 document.getElementById('f_champ').onchange = function() { selectField(this); };
204 window.onload = selectField(document.getElementById('f_champ'));
205 }())
206 {/literal}
207 </script>
208
209 {include file="admin/_foot.tpl"}