Fixes name edition: only notifies a name modification if it is actually modified.
authorStéphane Jacob <jacou@melix.net>
Sun, 12 Apr 2009 13:12:03 +0000 (15:12 +0200)
committerStéphane Jacob <jacou@melix.net>
Sun, 12 Apr 2009 13:12:03 +0000 (15:12 +0200)
htdocs/javascript/profile.js
modules/profile/general.inc.php
templates/profile/general.searchname.tpl

index add62f8..a85063b 100644 (file)
@@ -120,6 +120,15 @@ function updateNameDisplay()
     });
 }
 
+function toggleParticle(id)
+{
+    if ($('#search_name_' + id).find("[name*='[particle]']").val() == '') {
+        $('#search_name_' + id).find("[name*='[particle]']").val(1);
+    } else {
+        $('#search_name_' + id).find("[name*='[particle]']").val('');
+    }
+}
+
 // Nationalities {{{1
 
 function delNationality(i)
index 51a5979..708c2dc 100644 (file)
@@ -56,6 +56,7 @@ class ProfileSearchNames implements ProfileSetting
     {
         $success     = true;
         $success_tmp = true;
+
         if (is_null($value)) {
             $sn_all = XDB::iterator("SELECT  CONCAT(sn.particle, sn.name) AS name,
                                              sn.particle, sn.typeid, e.type, e.name AS type_name,
@@ -82,12 +83,14 @@ class ProfileSearchNames implements ProfileSetting
                     $value[] = $sn;
                     $sn = $sn_all->next();
                 } else {
-                    $value[] = array('typeid'    => $sn_type['id'],
-                                     'type'      => $sn_type['type'],
-                                     'type_name' => $sn_type['name'],
-                                     'pub'       => 1,
+                    $value[] = array('name'             => '',
+                                     'particle'         => '',
+                                     'typeid'           => $sn_type['id'],
+                                     'type'             => $sn_type['type'],
+                                     'type_name'        => $sn_type['name'],
                                      'has_particle'     => $sn_type['has_particle'],
-                                     'always_displayed' => 1);
+                                     'always_displayed' => 1,
+                                     'pub'              => 1);
                 }
             }
             if ($sn) {
@@ -159,6 +162,7 @@ class ProfileSearchNames implements ProfileSetting
             Platal::page()->assign('public_name', $public_name);
             Platal::page()->assign('private_name', $private_name);
         }
+
         return $value;
     }
 
index 89649b7..e7c2735 100644 (file)
       {if $sn.error} class="error"{/if} size="25" onkeyup="updateNameDisplay();"/>
   </td>
   <td>
-    {if $sn.has_particle}<input name="search_names[{$i}][particle]" type="checkbox"
-      title="Coche cette case si ton nom commence par une particle."
-      {if $sn.particle neq ''} checked="checked"{/if} onchange="updateNameDisplay();"/>
-    {else}
-      <input type="hidden"  name="search_names[{$i}][particle]" value=""/>{/if}
+    {if $sn.has_particle}<input type="checkbox"{if $sn.particle neq ''} checked="checked"{/if}
+      title="Coche cette case si ton nom commence par une particle." onchange="toggleParticle({$i});"/>
+    {/if}
+    <input type="hidden"  name="search_names[{$i}][particle]" value="{$sn.particle}"/>
     {if !$sn.always_displayed}<a href="javascript:removeSearchName({$i})">
       {icon name=cross title="Supprimer ce nom"}
     </a>{/if}