Can add/remove/edit addresses
[platal.git] / templates / profile / adresses.tpl
index 2f7b9da..237ba56 100644 (file)
 {*                                                                        *}
 {**************************************************************************}
 
+<script type="text/javascript">//<![CDATA[
+{literal}
+function removeObject(id, pref)
+{
+  document.getElementById(id).style.display = "none";
+  document.forms.prof_annu[pref + "[removed]"].value = "1";
+}
 
-<div class="blocunite_tab">
-  <table class="bicol" cellspacing="0" cellpadding="0" summary="Profil: Adresses personnelles">
-    <tr>
-      <th colspan="5">
-        Adresses personnelles
-      </th>
-    </tr>
+function getAddressElement(adrid, adelement)
+{
+  return document.forms.prof_annu["addresses[" + adrid + "][" + adelement + "]"];
+}
 
-    {section name=i loop=$nb_adr start=1 max=$nb_adr}
-    {*
-    $adrid = $ordre_adrid[$i];
-    $adr = &$adresses[$adrid];
-    *}
-    {assign var='adrid' value=$ordre_adrid[i]}
-    {assign var='adr' value=$adresses.$adrid}
-    <tr>
-      <th colspan="5">
-        <a id='adr{$adrid}'></a>
-        {if $adr.nouvelle != 'new'}Adresse n°{$smarty.section.i.index}{else}Rentre ici une nouvelle adresse{/if}
-        <input type="hidden" name="adrid[{$adrid}]" value="{$adrid}" />
-        {if $adr.nouvelle == 'new'}
-        <input type="hidden" name="numero_formulaire[{$adrid}]" value="0" />
-        {else}
-        <input type="hidden" name="numero_formulaire[{$adrid}]" value="{$smarty.section.i.index}" />
-        {/if}
-        {if $adr.nouvelle != 'new'}
-        <a href="profile/edit/{$onglet}?adrid_del[{$adrid}]=1" style="color:inherit">{icon name=cross title="Supprimer cette adresse"}</a>
-        {/if}
-      </th>
-    </tr>
-    {include file="include/flags.radio.tpl" name="pub[$adrid]" val=$adr.pub}
-    <tr>
-      <td class="left">
-        &nbsp;
-      </td>
-      <td colspan="4" class="right">
-        <em>c'est à cette adresse que je suis actuellement</em>
-        <input name="adrid_active" type="radio" value="{$adrid}" {if $adr.active}checked="checked"{/if} />
-      </td>
-    </tr>
-    {if $adr.nouvelle != 'new'}
-    {assign var="titre" value="Adresse n°`$smarty.section.i.index`&nbsp;:"}
-    {else}
-    {assign var="titre" value="Nouvelle adresse&nbsp;:"}
-    {/if}
-    {include file="geoloc/form.address.tpl" adr=$adr titre=$titre}
-    <tr>
-      <td class="colg">
-        <span class="titre">Adresse:</span>
-      </td>
-      <td class="cold" colspan="4">
-        <input type="radio" name="temporaire[{$adrid}]" value="0" {if !$adr.temporaire}checked="checked"{/if} />
-        permanente
-        <input type="radio" name="temporaire[{$adrid}]" value="1" {if $adr.temporaire}checked="checked"{/if} />
-        temporaire
-      </td>
-    </tr>
-    <tr>
-      <td class="colg">
-        &nbsp;
-      </td>
-      <td class="cold" colspan="4">
-        <input type="radio" name="secondaire[{$adrid}]" value="0" {if !$adr.secondaire}checked="checked"{/if} />
-        ma résidence principale
-        <input type="radio" name="secondaire[{$adrid}]" value="1" {if $adr.secondaire}checked="checked"{/if} />
-        une résidence secondaire
-      </td>
-    </tr>
-    <tr>
-      <td class="colg">
-        &nbsp;
-      </td>
-      <td class="cold" colspan="4">
-        <input type="checkbox" name="courrier[{$adrid}]" value="1" {if $adr.courrier}checked="checked"{/if} /> on peut m'y envoyer du courrier par la poste
-      </td>
-    </tr>
-    {foreach from=$adr.tels item="tel"}
-    <tr class="flags">
-      <td class="colg">
-        <input type="hidden" name="telid{$tel.telid}[{$adrid}]" value="{$tel.telid}"/>
-        {if $tel.new_tel && !$tel.tel}
-          <input type="hidden" name="new_tel{$tel.telid}[{$adrid}]" value="1"/>
-        {/if}
-        <span class="titre" onclick="this.style.display='none';var d = document.getElementById('tel_type{$adrid}_{$tel.telid}');d.style.display='inline';d.select();d.focus();">{$tel.tel_type}&nbsp;:</span>
-        <input id="tel_type{$adrid}_{$tel.telid}" style="display:none" type="text" size="5" maxlength="30" name="tel_type{$tel.telid}[{$adrid}]" value="{$tel.tel_type}"/>
-      </td>
-      <td>
-        <input type="text" size="19" maxlength="28" name="tel{$tel.telid}[{$adrid}]" value="{$tel.tel}" />
-        {if $tel.tel}
-               <a href="profile/edit/{$onglet}?adrid={$adrid}&telid={$tel.telid}&deltel=1">{icon name=cross title="Supprimer ce tél."}</a>
-       {/if}
-      </td>
-      {include file="include/flags.radio.tpl" name="tel_pub`$tel.telid`[$adrid]" val=$tel.tel_pub display="mini"}
-    </tr>
-    {/foreach}
-    <tr><td colspan="5">&nbsp;</td></tr>
-    {/section}
-    <tr><td colspan="5">&nbsp;</td></tr>
-  </table>
+function checkCurrentAddress(newCurrent)
+{
+  var hasCurrent = false;
+  var i = 0;
+  while (getAddressElement(i, 'pub') != null) {
+    var radio = getAddressElement(i, 'current');
+    var removed = getAddressElement(i, 'removed');
+    if (removed.value == "1" && radio.checked) {
+      radio.checked = false;
+    } else if (radio.checked && radio != newCurrent) {
+      radio.checked = false;
+    } else if (radio.checked) {
+      hasCurrent = true;
+    }
+    i++;
+  }
+  if (!hasCurrent) {
+    i = 0;
+    while (getAddressElement(i, 'pub') != null) {
+      var radio = getAddressElement(i, 'current');
+      var removed = getAddressElement(i, 'removed');
+      if (removed.value != "1") {
+        radio.checked= true;
+        return;
+      }
+      i++;
+    }
+  }
+}
+
+function removeAddress(id, pref)
+{
+  removeObject(id, pref);
+  checkCurrentAddress(null);
+}
+
+function addAddress()
+{
+  var i = 0;
+  while (getAddressElement(i, 'pub') != null) {
+    i++;
+  }
+  $("#add_adr").before('<div id="addresses_' + i + '"></div>');
+  Ajax.update_html('addresses_' + i, 'profile/ajax/address/' + i, checkCurrentAddress);
+}
+
+function addTel(id)
+{
+  var i = 0;
+  var adid = 'addresses_' + id;
+  var tel  = adid + '_tel_';
+  while (document.getElementById(tel + i) != null) {
+    i++;
+  }
+  $('#' + adid + '_add_tel').before('<div id="' + tel + i + '" style="clear: both"></div>');
+  Ajax.update_html(tel + i, 'profile/ajax/tel/' + id + '/' + i);
+}
+
+{/literal}
+//]]></script>
+
+{foreach key=i item=adr from=$addresses}
+<div id="{"addresses_$i"}">
+{include file="profile/adresses.address.tpl" i=$i adr=$adr}
+</div>
+{/foreach}
+{if $addresses|@count eq 0}
+<div id="addresses_0">
+{include file="profile/adresses.address.tpl" i=0 adr=0}
+</div>
+{/if}
+
+<div id="add_adr" class="center">
+  <a href="javascript:addAddress()">
+    {icon name=add title="Ajouter une adresse"} Ajouter une adresse
+  </a>
 </div>
 
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}