Oops, fix medals with Safari
[platal.git] / templates / profile / deco.tpl
1 {**************************************************************************}
2 {*                                                                        *}
3 {*  Copyright (C) 2003-2007 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
24 <script type="text/javascript">//<![CDATA[
25 {literal}
26 var subgrades = new array();
27 var names     = new array();
28
29 function update()
30 {
31   var val = document.forms.prof_annu['medal_sel'].value;
32   if (val == '' || document.getElementById('medal_' + val) != null) {
33     document.getElementById('medal_add').style.display = 'none';
34   } else {
35     document.getElementById('medal_add').style.display = '';
36   }
37 }
38
39 function getMedalName(id)
40 {
41   document.getElementById('medal_name_' + id).innerHTML = names[id];
42 }
43
44 function buildGrade(id, current)
45 {
46   var grade;
47   var subg = subgrades[id];
48   var obj  = $('#medal_grade_' + id);
49   if (!subg) {
50     obj.prepend('<input type="hidden" name="medals[' + id + '][grade]" value="0" />');
51   } else {
52     var html = 'Agrafe : <select name="medals[' + id + '][grade]">';
53     html += '<option value="0">Non précisée</option>';
54     for (grade = 0 ; grade < subg.length ; grade++) {
55       html += '<option value="' + subg[grade][0] + '">' + subg[grade][1] + '</option>';
56     }
57
58     html += '</select>';
59     obj.prepend(html);
60   }
61 }
62
63 function makeAddProcess(id)
64 {
65   return function(data)
66          {
67            $('#medals').after(data);
68            update();
69            getMedalName(id);
70            buildGrade(id, 0);
71          };
72 }
73
74 function add()
75 {
76   var id = document.forms.prof_annu['medal_sel'].value;
77   $.get(platal_baseurl + 'profile/ajax/medal/' + id, makeAddProcess(id));
78 }
79
80 function remove(id)
81 {
82   $("#medal_" + id).remove();
83 }
84
85 {/literal}
86 {foreach from=$medal_list key=type item=list}
87   {foreach from=$list item=m}
88   names[{$m.id}] = "{$m.text}";
89   {if $grades[$m.id]|@count}
90     names[{$m.id}] = "{$m.text}";
91     subgrades[{$m.id}] = new array({$grades[$m.id]|@count});
92     {foreach from=$grades[$m.id] item=g}
93       subgrades[{$m.id}][{$g.gid-1}] = [{$g.gid},"{$g.text}"];
94     {/foreach}
95   {/if}{/foreach}
96 {/foreach}
97 </script>
98
99 <table class="bicol">
100   <tr>
101     <th>
102       Médailles, Décorations, Prix, ...
103     </th>
104   </tr>
105   <tr>
106     <td>
107       <div class="flags">
108         <div class="vert" style="float: left">
109           <input type="checkbox" name="medals_pub"{if $medals_pub eq 'public'} checked="checked"{/if} />
110         </div>
111         <div class="texte">
112           ces informations sont normalement publiques (JO, ...) mais tu peux choisir de les associer a ta fiche publique
113         </div>
114       </div>
115       <div style="clear: both; margin-top: 0.2em" id="medals">
116         <select name="medal_sel" onchange="update()">
117           <option value=''></option>
118           {foreach from=$medal_list key=type item=list}
119           <optgroup label="{$trad[$type]}...">
120             {foreach from=$list item=m}
121             <option value="{$m.id}">{$m.text}</option>
122             {/foreach}
123           </optgroup>
124           {/foreach}
125         </select>
126         <span id="medal_add">
127           <a href="javascript:add();">{icon name=add title="Ajouter cette médaille"}</a>
128         </span>
129       </div>
130       {foreach from=$medals item=medal key=id}
131       {include file="profile/deco.medal.tpl" medal=$medal id=$id}
132       {/foreach}
133     </td>
134   </tr>
135 </table>
136
137 <script type="text/javascript">
138 update();
139 </script>
140
141 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}