Improves wiki admin page (Closes #1120).
[platal.git] / templates / admin / wiki.tpl
1 {**************************************************************************}
2 {*                                                                        *}
3 {*  Copyright (C) 2003-2010 Polytechnique.org                             *}
4 {*  http://opensource.polytechnique.org/                                  *}
5 {*                                                                        *}
6 {*  This program is free software; you can redistribute it and/or modify  *}
7 {*  it under the terms of the GNU General Public License as published by  *}
8 {*  the Free Software Foundation; either version 2 of the License, or     *}
9 {*  (at your option) any later version.                                   *}
10 {*                                                                        *}
11 {*  This program is distributed in the hope that it will be useful,       *}
12 {*  but WITHOUT ANY WARRANTY; without even the implied warranty of        *}
13 {*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *}
14 {*  GNU General Public License for more details.                          *}
15 {*                                                                        *}
16 {*  You should have received a copy of the GNU General Public License     *}
17 {*  along with this program; if not, write to the Free Software           *}
18 {*  Foundation, Inc.,                                                     *}
19 {*  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA               *}
20 {*                                                                        *}
21 {**************************************************************************}
22
23 <h1>Pages wiki du site</h1>
24
25 {literal}
26 <script type="text/javascript">
27 // <!--
28   function check_all_boxes(form,action) {
29     var boxes = document.getElementById(form).getElementsByTagName('input');
30     for (var i=0; i<boxes.length; i++) if (boxes[i].type == 'checkbox') {
31       if (action == 'toggle')
32         boxes[i].checked = !boxes[i].checked;
33       else
34         boxes[i].checked = action;
35     }
36     return false;
37   }
38   var toggle = 0;
39   function replie(me, cat) {
40     if (toggle == 1) return;
41     toggle = 2;
42     $("tr[@id^=row_"+cat+"_]").hide();
43     $(me).attr('src', 'images/k1.gif');
44   }
45   function deplie(me, cat) {
46     if (toggle == 2) return;
47     toggle = 1;
48     $("tr[@id^=row_"+cat+"_]").show();
49     $(me).attr('src', 'images/k2.gif');
50   }
51   function toggle_folder() {
52     me = this;
53     if ($(this).attr("class") == "wiki_category")
54         me = $("../img.wiki_root", me)[0];
55     var cat=$.trim($(me).parent().text().replace(/(.*)\([0-9]+\)/, "$1"));
56     if ($(me).attr('src') == "images/k1.gif") {
57       deplie(me, cat);
58     }
59     replie(me, cat);
60     setTimeout("toggle = 0;", 10);
61   }
62   $(document).ready(function() {
63     $("tr.pair img[@alt=-]").css("cursor","pointer").click(toggle_folder).each(toggle_folder);
64     $(".wiki_category").css("cursor","pointer").click(toggle_folder);
65   });
66 // -->
67 </script>
68 {/literal}
69
70 <p class="center">
71    <a href="Site/AllRecentChanges?action=rss&amp;user={$smarty.session.hruid}&amp;hash={$smarty.session.user->token}" style="display:block;float:right" title="Changements">{icon name=feed title='fil rss'}</a>
72    {icon name=magnifier} <a href="Site/AllRecentChanges">Voir les changements récents</a>
73 </p>
74
75 <form action="admin/wiki/update" method="post" id="update_pages">
76 {xsrf_token_field}
77 <table class="bicol">
78   <tr>
79     <th>page</th>
80     <th>lecture</th>
81     <th>écriture</th>
82     <th class="action">action</th>
83   </tr>
84 {foreach from=$wiki_pages key=cat item=pages}
85   <tr class="pair">
86     <td colspan="4" style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; height: 20px">
87       <img class="wiki_root" src="images/k2.gif" alt="-" width="9" height="21" />
88       <span class="wiki_category">{$cat}</span> ({$pages|@count}) <a href="{$cat}/RecentChanges">{icon name=magnifier title="Changements récents"}</a>
89     </td>
90   </tr>
91 {foreach from=$pages item=perm key=page name=pages}
92   <tr id="row_{$cat}_{$page}" class="impair" onmouseover="this.className='pair';" onmouseout="this.className='impair';">
93     <td style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; height: 20px">
94       {if $smarty.foreach.pages.last}
95       <img src="images/L.gif" alt="L" width="12" height="21" />
96       {else}
97       <img src="images/T.gif" alt="|" style="width: 12px: height: 21px" />
98       {/if}
99       <a href="{$cat}/{$page}">{$page}</a>{if $perm.cached}*{/if} <a href="{$cat}/{$page}?action=edit" class="indice">{icon name=page_edit title='éditer'}</a>
100     </td>
101     <td class="center" style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; height: 20px">
102       {assign var=read value=$perm.read}
103       {$perms_opts.$read}
104     </td>
105     <td class="center" style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; height: 20px">
106       {assign var=edit value=$perm.edit}
107       {$perms_opts.$edit}
108     </td>
109     <td class="action" style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; height: 20px">
110       <a href="admin/wiki/rename/{$cat}.{$page}" onclick="var newname=prompt('Déplacer la page {$cat}.{$page} vers&nbsp;:', '{$cat}.{$page}'); if (!newname) return false; this.href += '/' + newname + '?token={xsrf_token}';">{icon name=book_next title='déplacer'}</a>
111       <a href="admin/wiki/delete/{$cat}.{$page}?token={xsrf_token}" onclick="return confirm('Supprimer la page {$cat}.{$page}&nbsp;?');">{icon name=cross title='supprimer'}</a>
112       <input type="checkbox" name="{$cat}/{$page}"/>
113     </td>
114   </tr>
115 {/foreach}
116 {/foreach}
117   <tr class="pair">
118     <td colspan="3"></td>
119     <td class="action">
120       <span onclick="check_all_boxes('update_pages', true)">{icon name=tick title='tout cocher'}</span>
121       <span onclick="check_all_boxes('update_pages', false)">{icon name=cross title='tout décocher'}</span>
122       <span onclick="check_all_boxes('update_pages', 'toggle')">{icon name=arrow_refresh title='toggle'}</span>
123     </td>
124   </tr>
125   <tr class="pair">
126     <td>
127       Attribue les permissions aux pages cochées&nbsp;:
128     </td>
129     <td class="center">
130       <select name="read">
131         <option value=""> - </option>
132         {html_options options=$perms_opts}
133       </select>
134     </td>
135     <td class="center">
136       <select name="edit">
137         <option value=""> - </option>
138         {html_options options=$perms_opts}
139       </select>
140     </td>
141     <td class="option center">
142       <input type="submit" value="ok"/>
143     </td>
144   </tr>
145   <tr>
146     <th>page</th>
147     <th>lecture</th>
148     <th>écriture</th>
149     <th class="action">action</th>
150   </tr>
151 </table>
152 </form>
153
154 <p class="smaller">
155   *&nbsp;: les pages marquées d'une astérisque sont actuellement disponibles en cache (accès plus rapide).
156 </p>
157 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}