Fix profile view when not logged in.
[platal.git] / templates / profile / general.tpl
index 2fb7661..5266aba 100644 (file)
@@ -1,6 +1,6 @@
 {**************************************************************************}
 {*                                                                        *}
-{*  Copyright (C) 2003-2008 Polytechnique.org                             *}
+{*  Copyright (C) 2003-2014 Polytechnique.org                             *}
 {*  http://opensource.polytechnique.org/                                  *}
 {*                                                                        *}
 {*  This program is free software; you can redistribute it and/or modify  *}
 {*                                                                        *}
 {**************************************************************************}
 
-<table class="bicol" style="margin-bottom: 1em"
-  summary="Profil&nbsp;: Informations générales">
+<table class="bicol" style="margin-bottom: 1em" summary="Profil : Noms">
   <tr>
-    <th colspan="2">
-      <div class="flags" style="float: left">
-        <input type="checkbox" disabled="disabled" checked="checked" />
-        {icon name="flag_green" title="site public"}
-      </div>
-      Informations générales
-    </th>
+    <th colspan="3">Noms{if t($validation)} <small>(validations en attente de modération)</small>{/if}</th>
   </tr>
   <tr>
-    <td>
-      <span class="titre">Nom</span><br/>
+    <td class="titre">
+      {icon name="flag_green" title="site public"}&nbsp;Affichage public
+    </td>
+    <td id="public_name">
+      {$public_name}
     </td>
     <td>
-      {$nom}
-      <input type='hidden' name='nom' {if $errors.nom}class="error"{/if} value="{$nom}" />
+      <a href="javascript:toggleNamesAdvanced({$viewPrivate});">
+        {icon name="page_edit" title="Plus de détail"}
+      </a>
     </td>
   </tr>
+  {if $viewPrivate}
   <tr>
-    <td>
-      <span class="titre">Prénom</span><br/>
+    <td class="titre">
+      {icon name="flag_red" title="site privé"}&nbsp;Affichage privé
     </td>
-    <td>
-      {$prenom}
-      <input type='hidden' name='prenom' {if $errors.prenom}class="error"{/if} value="{$prenom}" />
+    <td id="private_name">
+      {$private_name}
     </td>
+    <td></td>
   </tr>
+  {/if}
+  {if $isMe}
   <tr>
     <td>
-      <span class="titre">Affichage de ton nom</span>
+      <span class="titre">Comment t'appeler</span><br />
+      <span class="smaller">sur le site, dans la lettre mensuelle...</span>
     </td>
     <td>
-      {if $tooltip_name}<span title="{$tooltip_name}" class="hint">{$display_name}</span>{else}{$display_name}{/if}
-      <a href="profile/edit#names_advanced" onclick="$('#names_advanced').show();$(this).hide();document.location = document.location + '#names_advanced';return false">
-        {icon name="page_edit" title="Plus de détail"}
-      </a>
+      <input type="text" name="yourself" value="{$yourself}" size="25"/>
+    </td>
+    <td></td>
+  </tr>
+  {/if}
+  <tr class="names_advanced_public" {if !$errors.search_names}style="display: none"{/if}>
+    <td colspan="3">
+      <span class="titre">Gestion des noms, prénoms, surnoms...</span>
+      <span class="smaller">Ils déterminent la façon dont
+      {if $isMe}ton{else}son{/if} nom apparaît sur les annuaires
+      en ligne et papier et ta fiche apparaitra quand on cherche un de ces noms.</span><br/>
+    </td>
+  </tr>
+  {include file="profile/general.public_names.tpl" names=$search_names.public_names}
+  {foreach from=$search_names.private_names key=id item=name}
+    {include file="profile/general.private_name.tpl"}
+  {/foreach}
+  <tr class="names_advanced_private" id="searchname" {if !$errors.search_names}style="display: none"{/if}>
+    <td colspan="3">
+      <div id="sn_add" class="center">
+        <a href="javascript:addSearchName({$isFemale});">
+          {icon name=add title="Ajouter un nom"} Ajouter un nom
+        </a>
+      </div>
+    </td>
+  </tr>
+  <tr class="names_advanced_private" {if !$errors.search_names}style="display: none"{/if}>
+    <td class="center" colspan="2">
+      <small>Si la casse de ton nom est erronée et que tu n'arrives pas à la corriger,
+      <a href="mailto:support@{#globals.mail.domain#}">contacte-nous</a>.</small>
     </td>
   </tr>
+</table>
+
+<table class="bicol" style="margin-bottom: 1em"
+  summary="Profil&nbsp;: Informations générales">
+  <tr>
+    <th colspan="2">
+      <div class="flags" style="float: left">
+        <input type="checkbox" disabled="disabled" checked="checked" />
+        {icon name="flag_green" title="site public"}
+      </div>
+      Informations générales
+    </th>
+  </tr>
   <tr>
     <td>
       <span class="titre">Promotion</span>
     </td>
     <td>
-      {if !$promo_choice}
-        <span class="nom">{$promo_display}</span>
+      {if !t($promo_choice)}
+        <span class="nom">{$profile->promo()}</span>
+        <input type="hidden" name="promo_display" value="{$profile->promo()}"/>
       {else}
         <select name="promo_display">
         {foreach from=$promo_choice item="promo_to_display"}
         {/foreach}
         </select>
       {/if}
-      <span class="lien"><a href="profile/orange" {if ($grad_year -3 == $entry_year)} {popup text="pour les oranges"}{/if}>{icon name="page_edit" title="modifier"}</a></span>
+      <span class="lien"><a href="javascript:togglePromotionEdition();" {popup text="pour les oranges"}>{icon name="page_edit" title="modifier"}</a></span>
+    </td>
+  </tr>
+  <tr class="promotion_edition" style="display: none">
+    <td colspan="2">
+      {if $isMe}
+      Afin de pouvoir être considéré{""|sex:"e":$profile} à la fois dans ta promotion d'origine et ta
+      ou tes promotions d'adoption tu peux entrer ici ta promotion d'adoption.
+      {else}
+      Afin que ce{""|sex:"tte":$profile} camarade soit considé{""|sex:"e":$profile} à la fois dans sa 
+      promotion d'origine et sa promotion d'adoption, tu peux entrer ici sa promotion d'adoption.
+      {/if}
+      <br /><span class="smaller"><span class="titre">Attention&nbsp;:</span>
+      cette modification ne sera prise en compte qu'après validation par les administrateurs du site.</span>
+    </td>
+  </tr>
+  <tr class="promotion_edition" style="display: none">
+    <td class="titre">Promotion d'adoption</td>
+    <td>
+      {$profile->mainEducation()}<input type="text" name="promo" size="4" maxlength="4" value="{$promo}" />
+      <span class="smaller"> (que les chiffres)</span>
     </td>
   </tr>
   <tr>
     <td>
       <span class="titre">Date de naissance</span>
     </td>
-    <td><input type="text" {if $errors.naissance}class="error"{/if} name="naissance" value="{$naissance}" /></td>
+    <td><input type="text" {if $errors.birthdate}class="error"{/if} name="birthdate" value="{$birthdate}" /></td>
   </tr>
+  {if !$isMe}
+  <tr>
+    <td>
+      <span class="titre">Date de décès</span>
+    </td>
+    <td><input type="text" {if $errors.deathdate}class="error"{/if} name="deathdate" value="{$deathdate}" /></td>
+  </tr>
+  <tr>
+    <td>
+      <span class="titre">Date de naissance de référence</span>
+    </td>
+    <td>
+    {if hasPerm('admin') && !$is_registered}
+      <input type="text" {if $errors.birthdate_ref}class="error"{/if} name="birthdate_ref" value="{$birthdate_ref}" />
+    {else}
+      {$birthdate_ref}
+    {/if}
+    </td>
+  </tr>
+  {/if}
   <tr>
     <td>
       <span class="titre">Nationalité</span>
     </td>
     <td>
-      <select name="nationalite">
-        {select_nat valeur=$nationalite pad=1}
+      <select name="nationality1">
+        {select_nat valeur=$nationality1 pad=1}
       </select>
       <a href="javascript:addNationality();">{icon name=add title="Ajouter une nationalité"}</a>
     </td>
   </tr>
-  <tr id="nationalite2" {if !$nationalite2}style="display: none"{/if}>
+  <tr id="nationality2" {if !$nationality2}style="display: none"{/if}>
     <td></td>
     <td>
-      <select name="nationalite2">
-        {select_nat valeur=$nationalite2 pad=1}
+      <select name="nationality2">
+        {select_nat valeur=$nationality2 pad=1}
       </select>
       <a href="javascript:delNationality('2');">{icon name=cross title="Supprimer cette nationalité"}</a>
     </td>
   </tr>
-  <tr id="nationalite3" {if !$nationalite3}style="display: none"{/if}>
+  <tr id="nationality3" {if !$nationality3}style="display: none"{/if}>
     <td></td>
     <td>
-      <select name="nationalite3">
-        {select_nat valeur=$nationalite3 pad=1}
+      <select name="nationality3">
+        {select_nat valeur=$nationality3 pad=1}
       </select>
       <a href="javascript:delNationality('3');">{icon name=cross title="Supprimer cette nationalité"}</a>
     </td>
   </tr>
+  <tr>
+    <td><span class="titre">Civilité</span></td>
+    <td>
+      <select name="profile_title">
+        <option value="M" {if $profile_title eq "M"}selected="selected"{/if}>M</option>
+        <option value="MLLE" {if $profile_title eq "MLLE"}selected="selected"{/if}>MLLE</option>
+        <option value="MME" {if $profile_title eq "MME"}selected="selected"{/if}>MME</option>
+      </select>
+    </td>
+  </tr>
+</table>
+
+<table class="bicol" style="margin-bottom: 1em" summary="Profil&nbsp;: Formations à l'X">
+  <tr>
+    <th colspan="2">
+      <div class="flags" style="float: left">
+        <input type="checkbox" disabled="disabled" checked="checked" />
+        {icon name="flag_green" title="site public"}
+      </div>
+      Formations à l'École polytechnique
+    </th>
+  </tr>
+  {foreach from=$main_edus key=eduid item=main_edu}
+  {cycle values="impair, pair" assign=class}
+  <tr class="{$class}">
+    <td><span class="titre">Cycle&nbsp;:</span></td>
+    <td>{$main_edu.cycle}</td>
+  </tr>
+  <tr class="{$class}">
+    <td><span class="titre">Promotion&nbsp;:</span></td>
+    <td>{if t($main_edu.promo_year)}{$main_edu.promo_year}{/if}</td>
+  </tr>
+  <tr class="{$class}">
+    <td><span class="titre">Domaine de formation&nbsp;:</span></td>
+    <td>
+      <select name="main_edus[{$main_edu.degreeid}][fieldid]">
+        <option value="">&nbsp;</option>
+        {foreach from=$edu_fields item=field}
+        <option value="{$field.id}" {if $field.id eq $main_edu.fieldid}selected="selected"{/if}>{$field.field}</option>
+        {/foreach}
+      </select>
+    </td>
+  </tr>
+  <tr class="{$class}">
+    <td><span class="titre">Description de la formation&nbsp;:</span></td>
+    <td>
+      <input type="text" name="main_edus[{$main_edu.degreeid}][program]" value="{$main_edu.program}" size="30" maxlength="255" />
+      <input type="hidden" name="main_edus[{$main_edu.degreeid}][degreeid]" value="{$main_edu.degreeid}" />
+      <input type="hidden" name="main_edus[{$main_edu.degreeid}][cycle]" value="{$main_edu.cycle}" />
+    </td>
+  </tr>
+  {/foreach}
 </table>
 
 <table class="bicol" style="margin-bottom: 1em" summary="Profil&nbsp;: Formations">
   </tr>
   {foreach from=$edus key=eduid item=edu}
     {cycle values="impair, pair" assign=class}
-    {include file="profile/edu.tpl" eduid=$eduid edu=$edu edu_fields=$edu_fields class=$class}
+    {include file="profile/general.edu.tpl" eduid=$eduid edu=$edu edu_fields=$edu_fields class=$class}
   {/foreach}
-  {if $edus|@count eq 0}
-    {cycle values="impair, pair" assign=class}
-    {include file="profile/edu.tpl" eduid=0 edu=0 class=$class}
-  {/if}
   {cycle values="impair, pair" assign=class}
   {assign var=eduaddid value=$edus|@count}
   <tr id="edu_add" class="edu_{$eduaddid} {$class}">
   </tr>
   <tr class="{$class}">
     <td class="center" colspan="2">
-      <small>Si ta formation ne figure pas dans la liste,
+      <small>Si la formation que tu cherches ne figure pas dans la liste,
       <a href="mailto:support@{#globals.mail.domain#}">contacte-nous</a>.</small>
     </td>
   </tr>
  </table>
 
-<table class="bicol" style="margin-bottom: 1em;display:none"
-  summary="Profil : Noms" id="names_advanced">
-  <tr>
-    <th colspan="2">
-      Noms
-    </th>
-  </tr>
-  <tr class="impair">
-    <td>
-      <span class="flags">
-        <input type="checkbox" checked="checked" disabled="disabled" />
-        {icon name="flag_green" title="site public"}
-      </span>&nbsp;
-      <span class="titre">Affichage courant de ton nom</span>
-      <a class="popup3" href="Xorg/Profil#name_displayed">{icon name="information" title="aide"}</a>
-    </td>
-    <td>
-      <input type="text" name="display_name" value="{$display_name}" size="40"/>
-    </td>
-  </tr>
-  <tr class="impair">
-    <td>
-      <span class="titre">explication</span>
-      <a class="popup3" href="Xorg/Profil#name_tooltip">{icon name="information" title="aide"}</a>
-    </td>
-    <td>
-      <input type="text" name="tooltip_name" value="{$tooltip_name}" size="40"/>
-    </td>
-  </tr>
-  <tr class="impair">
-    <td>
-      <span class="titre">ranger ce nom à</span>
-      <a class="popup3" href="Xorg/Profil#name_order">{icon name="information" title="aide"}</a>
-    </td>
-    <td>
-      <input type="text" name="sort_name" value="{$sort_name}" size="40"/>
-    </td>
-  </tr>
-  <tr class="impair">
-    <td>
-      <span class="flags">
-        <input type="checkbox" checked="checked" disabled="disabled" />
-        {icon name="flag_red" title="privé"}
-      </span>&nbsp;
-      <span class="titre">Comment on doit t'appeller</span>
-      <a class="popup3" href="Xorg/Profil#name_yourself">{icon name="information" title="aide"}</a>
-    </td>
-    <td>
-      <input type="text" name="yourself" value="{$yourself}" size="40"/>
-    </td>
-  </tr>
-  <tr class="impair">
-    <td colspan="2">
-      <span class="titre">Recherche</span><span class="smaller">, ta fiche apparaît quand on cherche un de ces noms</span>
-      <a class="popup3" href="Xorg/Profil#name_search">{icon name="information" title="aide"}</a>
-      {iterate from=$search_names item="sn"}
-      <div id="search_name_{$sn.sn_id}" style="padding:2px" class="center">
-        {include file="profile/general.searchname.tpl" i=$sn.sn_id sn=$sn}
-      </div>
-      {/iterate}
-      <div id="add_search_name" class="center" style="clear: both">
-        <a href="javascript:addSearchName()">
-          {icon name=add title="Ajouter un nom de recherche"} Ajouter un nom
-        </a>
-      </div>
-    </td>
-</table>
-
-{if !$no_private_key}
-<table class="bicol"  style="margin-bottom: 1em"
-  summary="Profil&nbsp;: Informations générales">
-  <tr>
-    <th>
-      Synchronisation avec l'AX
-    </th>
-  </tr>
-  <tr>
-    <td class="flags">
-      <input type="checkbox" name="synchro_ax" {if $synchro_ax}checked="checked" {/if}/>
-      {icon name="flag_orange" title="transmis à l'AX"}
-      <span class="texte">
-        Autoriser la synchronisation vers l'AX par des administrateurs ou des scripts automatiques.
-      </span>
-    </td>
-  </tr>
-  <tr>
-    <td>
-      <p>
-        Le service annuaire de l'<a href='http://www.polytechniciens.com'>AX</a> met à jour l'annuaire papier à partir des informations que tu lui fournis. Tu peux choisir ici d'envoyer directement les données de ta fiche Polytechnique.org vers ta <a href="http://www.polytechniciens.com/?page=AX_FICHE_ANCIEN&amp;anc_id={$matricule_ax}">fiche AX</a>.
-      </p>
-      <p>
-        L'opération de synchronisation prend en compte toutes les informations que tu as marquées comme transmises à l'AX (en orange ou en vert). Elle peut alors effacer, modifier ou rajouter des informations sur ta <a href="http://www.polytechniciens.com/?page=AX_FICHE_ANCIEN&amp;anc_id={$matricule_ax}">fiche AX</a> selon ce qui s'y trouve déjà.
-      </p>
-      <p class="center">
-        <a href="profile/edit/general?synchro_ax=confirm" onclick="return confirm('Es-tu sûr de vouloir lancer la synchronisation ?')"><input type="button" value="Synchroniser"/></a>
-      </p>
-    </td>
-  </tr>
-</table>
-{/if}
-
+{if $viewPrivate || $isMe}
 <table class="bicol"  style="margin-bottom: 1em"
   summary="Profil&nbsp;: Trombinoscope">
   <tr>
   </tr>
   <tr>
     <td {if !$nouvellephoto}colspan="2"{/if} class="center" style="width: 49%">
-      <div class="titre">Ta photo actuelle</div>
-      <img src="photo/{$smarty.session.hruid}" alt=" [ PHOTO ] " style="max-height: 250px; margin-top: 1em" />
+      <div class="titre">Photo actuelle</div>
+      <img src="photo/{$profile->hrid()}" alt=" [ PHOTO ] " style="max-height: 250px; margin-top: 1em" />
     </td>
     {if $nouvellephoto}
     <td class="center" style="width: 49%">
       <div class="titre">Photo en attente de validation</div>
       <div>
-        <a href="profile/{$smarty.session.hruid}?modif=new" class="popup2">
+        <a href="profile/{$profile->hrid()}?modif=new" class="popup2">
           Ta fiche avec cette photo
         </a>
       </div>
-      <img src="photo/{$smarty.session.hruid}/req" alt=" [ PHOTO ] " style="max-height: 250px; margin-top: 1em" />
+      <img src="photo/{$profile->hrid()}/req" alt=" [ PHOTO ] " style="max-height: 250px; margin-top: 1em" />
     </td>
     {/if}
   </tr>
       quelque part (sur ton ordinateur ou sur Internet) d'une photo
       d'identité (dans un fichier au format JPEG, PNG ou GIF).<br />
       <div class="center">
-        <a href="photo/change">Éditer ta photo</a>
+        <a href="photo/change/{$profile->hrid()}">Éditer ta photo</a>
       </div>
     </td>
   </tr>
 </table>
+{/if}
 
 <table class="bicol" style="margin-bottom: 1em"
   summary="Profil&nbsp;: Divers">
         </div>
       {/if}
       <div id="tels_add" class="center" style="clear: both; padding-top: 4px;">
-        <a href="javascript:addTel('tels', 'tels');">
+        <a href="javascript:addTel('tels','tels',null,null,null);">
           {icon name=add title="Ajouter un téléphone"} Ajouter un téléphone
         </a>
       </div>
     </td>
   </tr>
-  {if $email_error}
+  {if t($email_error)}
     {include file="include/emails.combobox.tpl" name="email_directory" val=$email_directory_error error=$email_error i="0"}
-  {else}{include file="include/emails.combobox.tpl" name="email_directory" val=$email_directory error=$email_error i="0"}{/if}
+  {else}{include file="include/emails.combobox.tpl" name="email_directory" val=$email_directory error=false i="0"}{/if}
   <tr>
     <td colspan="2">
       <span class="titre">Messageries, networking et sites web</span>
     {include file="profile/general.networking.tpl" nw=$network i=$id}
   {/foreach}
   <tr id="networking">
-    <script type="text/javascript">//<![CDATA[
-      var nw_list = new Array();
-      {foreach from=$network_list item=network}
-        nw_list['{$network.name}'] = {$network.type};
-      {/foreach}
-    //]]></script>
     <td colspan="2">
+      <script type="text/javascript">//<![CDATA[
+        var nw_list = new Array();
+        {foreach from=$network_list item=network}
+          nw_list['{$network.name}'] = {$network.type};
+        {/foreach}
+      //]]></script>
       <div id="nw_add" class="center">
         <a href="javascript:addNetworking();">
           {icon name=add title="Ajouter une adresse"} Ajouter une adresse
       </div>
     </td>
   </tr>
-<!--  <tr id="networking">
+  <tr>
     <td colspan="2">
-      <div style="float: left; width: 200px;">
-        <span class="titre" style="margin-left:1em;">Type à ajouter</span>
-      </div>
-      <div style="float: left;">
-        <div id="nw_type_ac" style="background-color: white; border: solid 1px black; position: absolute; width: 208px; display: none">TEST</div>
-        <input type="text" size="30" id="nw_type" name="nw_type" onkeyup="updateNetworking()">
-        <span id="nw_add" style="display: none">
-          <a href="javascript:addNetworking();">{icon name=add title="Ajouter cette adresse"}</a>
-        </span>
+      <span class="titre">Sports, loisirs, hobbies&hellip;</span>
+    </td>
+  </tr>
+  {foreach from=$hobbies item=hobby key=id}
+    {include file="profile/general.hobby.tpl" hobby=$hobby i=$id}
+  {/foreach}
+  <tr id="hobby">
+    <td colspan="2">
+      <div id="hobby_add" class="center">
+        <a href="javascript:addHobby();">
+          {icon name=add title="Ajouter un hobby"} Ajouter un hobby
+        </a>
       </div>
     </td>
-  </tr>-->
+  </tr>
+  {if $viewPrivate || $isMe}
   <tr class="pair">
     <td>
       <div>
                 id="freetext" rows="8" cols="50" >{$freetext}</textarea>
     </td>
   </tr>
+  {/if}
+  {if !t($isMe)}
+  <tr class="pair">
+    <td>
+      <div>
+        <span class="titre">Commentaire AX</span>
+      </div>
+    </td>
+    <td>
+     <div id="axft_preview" style="display: none"></div>
+     <textarea name="axfreetext" {if $errors.axfreetext}class="error"{/if}
+     id="axfreetext" rows="8" cols="50" >{$axfreetext}</textarea>
+    </td>
+  </tr>
+  {/if}
 </table>
 
-{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
+{* vim:set et sw=2 sts=2 sws=2 fenc=utf-8: *}