Improves education's form display (Finaly closes #209)
authorStéphane Jacob <jacou@melix.net>
Wed, 20 Aug 2008 21:19:28 +0000 (23:19 +0200)
committerStéphane Jacob <jacou@melix.net>
Wed, 20 Aug 2008 21:19:28 +0000 (23:19 +0200)
htdocs/javascript/profile.js
include/education.func.inc.php
modules/profile.php
templates/profile/edu.tpl
templates/profile/general.tpl
upgrade/fusionax-0.0.1/06_education.sql

index a12868f..4b3c470 100644 (file)
@@ -26,7 +26,7 @@ function wizPage_onLoad(id)
       case 'general':
         var i = 0;
         var prefix  = 'edu_';
-        while (document.getElementById(prefix + i) != null) {
+        while ($('.' + prefix + i).length != 0) {
             i++;
         }
         for (var j = 0; j < i; j++) {
@@ -274,20 +274,26 @@ function addEdu()
 {
     var i = 0;
     var prefix  = 'edu_';
-    while (document.getElementById(prefix + i) != null) {
+    var class_parity;
+
+    while ($('.' + prefix + i).length != 0) {
         i++;
     }
-    $('#edu_add').before('<div id="' + prefix + i + '"></div>');
-    $.get(platal_baseurl + 'profile/ajax/edu/' + i,
+    if (i % 2) {
+        class_parity = 'pair';
+    } else {
+        class_parity = 'impair';
+    }
+    $.get(platal_baseurl + 'profile/ajax/edu/' + i + '/' + class_parity,
           function(data) {
-              $("#" + prefix + i).html(data);
+              $('#edu_add').before(data);
               prepareType(i);
           });
 }
 
 function removeEdu(id)
 {
-    $('#' + id).remove();
+    $('.' + id).remove();
 }
 
 function addTel(prefid, prefname)
index e1b5144..2cca09b 100644 (file)
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************/
 
-function education_options($current=0)
+function education_options($current = 0)
 {
-    $html = '<option value = "-1"></option>';
+    $html = '<option value="-1"></option>';
     $res  = XDB::iterator("SELECT  *
                              FROM  profile_education_enum
                          ORDER BY  name");
     while ($arr_edu = $res->next()) {
         $html .= '<option value="' . $arr_edu["id"] . '"';
-        if ($arr_edu["id"]==$current) {
+        if ($arr_edu["id"] == $current) {
             $html .= " selected='selected'";
         }
         $html .= '>' . htmlspecialchars($arr_edu["name"]) . "</option>\n";
@@ -113,7 +113,7 @@ function education_fmt($name, $url, $degree, $grad_year, $field, $program, $sexe
     $txt = "";
 
     if ($grad_year || $field || $program) {
-        $txt .= "<span  title=\"(";
+        $txt .= "<span title=\"(";
         if ($program) {
             $txt .= $program;
             if ($grad_year || $field) {
index 84d3a28..e1dbec5 100644 (file)
@@ -416,7 +416,7 @@ class ProfileModule extends PLModule
         $page->assign('tel', array());
     }
 
-    function handler_ajax_edu(&$page, $eduid)
+    function handler_ajax_edu(&$page, $eduid, $class)
     {
         header('Content-Type: text/html; charset=utf-8');
         $page->changeTpl('profile/edu.tpl', NO_SKIN);
@@ -425,6 +425,7 @@ class ProfileModule extends PLModule
                             ORDER BY  field");
         $page->assign('edu_fields', $res->fetchAllAssoc());
         $page->assign('eduid', $eduid);
+        $page->assign('class', $class);
         require_once "education.func.inc.php";
     }
 
index ca43b36..61d0483 100644 (file)
 {**************************************************************************}
 
 {assign var=eduname value="edus[`$eduid`]"}
-<select name="{$eduname}[eduid]" onchange="fillType(this.form['{$eduname}[degreeid]'], this.selectedIndex-1);">
-  {education_options selected=$edu.eduid}
-</select>
-<input type="hidden" name="edu_{$eduid}_tmp" value="{$edu.degreeid}" />
-<select name="{$eduname}[degreeid]">
-  <option value=""></option>
-</select>
-<br />
-Domaine de formation&nbsp;:
-<select name="{$eduname}[fieldid]">
-  {foreach from=$edu_fields item=field}
-  <option value="{$field.id}" {if $field.id eq $edu.fieldid}selected="selected"{/if}>{$field.field}</option>
-  {/foreach}
-</select>
-<a href="javascript:removeEdu('edu_{$eduid}')">
-  {icon name=cross title="Supprimer cette formation"}
-</a>
-<br />
-Année d'obtention du diplôme&nbsp;:
-<input type="text" {if $edu.error}class="error"{/if} name="{$eduname}[grad_year]" value="{$edu.grad_year}" size="4" maxlength="4" />
-<small>(par exemple&nbsp;: 2008)</small>
-<br />
-Intitulé de la formation&nbsp;:
-<input type="text" name="{$eduname}[program]" value="{$edu.program}" size="40" maxlength="255" />
+<tr class="edu_{$eduid} {$class}">
+  <td colspan="2">
+    <a href="javascript:removeEdu('edu_{$eduid}')">
+      {icon name=cross title="Supprimer cette formation"}
+    </a>
+    <select name="{$eduname}[eduid]" onchange="fillType(this.form['{$eduname}[degreeid]'], this.selectedIndex - 1);">
+      {education_options selected=$edu.eduid}
+    </select>
+    <input type="hidden" name="edu_{$eduid}_tmp" value="{$edu.degreeid}" />
+    <select name="{$eduname}[degreeid]">
+      <option value=""></option>
+    </select>
+  </td>
+</tr>
+<tr class="edu_{$eduid} {$class}">
+  <td>
+    <span class="titre">Domaine de formation&nbsp;:</span>
+  </td>
+  <td>
+    <select name="{$eduname}[fieldid]">
+      {foreach from=$edu_fields item=field}
+      <option value="{$field.id}" {if $field.id eq $edu.fieldid}selected="selected"{/if}>{$field.field}</option>
+      {/foreach}
+    </select>
+  </td>
+</tr>
+<tr class="edu_{$eduid} {$class}">
+  <td>
+    <span class="titre">Année d'obtention du diplôme&nbsp;:</span>
+  </td>
+  <td>
+    <input type="text" {if $edu.error}class="error"{/if} name="{$eduname}[grad_year]"
+    value="{$edu.grad_year}" size="4" maxlength="4" />
+    <small>(par exemple&nbsp;: 2008)</small>
+  </td>
+</tr>
+<tr class="edu_{$eduid} {$class}">
+  <td>
+    <span class="titre">Intitulé de la formation&nbsp;:</span>
+  </td>
+  <td>
+    <input type="text" name="{$eduname}[program]" value="{$edu.program}" size="30" maxlength="255" />
+  </td>
+</tr>
 
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
index f3bddc0..06325c0 100644 (file)
       <a href="javascript:delNationality('3');">{icon name=cross title="Supprimer cette nationalité"}</a>
     </td>
   </tr>
+</table>
+
+<table class="bicol" style="margin-bottom: 1em" summary="Profil&nbsp;: Formations">
   <tr>
-    <td>
-      <span class="titre">Formation</span>
-    </td>
-    <td></td>
-  </tr>
-  {foreach from=$edus key=eduid item=edu}
-  <tr>
-    <td colspan="2">
-      <div id="edu_{$eduid}">
-        {include file="profile/edu.tpl" eduid="$eduid" edu="$edu" edu_fields=$edu_fields}
+    <th colspan="2">
+      <div class="flags" style="float: left">
+        <input type="checkbox" disabled="disabled" checked="checked" />
+        {icon name="flag_green" title="site public"}
       </div>
-    </td>
+      Formations
+    </th>
   </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}
   {/foreach}
   {if $edus|@count eq 0}
-  <tr>
-    <td colspan="2">
-      <div id="edu_0">
-        {include file="profile/edu.tpl" eduid=0 edu=0}
-      </div>
-    </td>
-  </tr>
+    {cycle values="impair, pair" assign=class}
+    {include file="profile/edu.tpl" eduid=0 edu=0 class=$class}
   {/if}
-  <tr>
+  {cycle values="impair, pair" assign=class}
+  <tr id="edu_add" class="{$class}">
     <td colspan="2">
-      <div id="edu_add" class="center" style="clear: both; padding-top: 4px;">
+      <div class="center" style="clear: both; padding-top: 4px;">
         <a href="javascript:addEdu();">
           {icon name=add title="Ajouter une formation"} Ajouter une formation
         </a>
       </div>
     </td>
   </tr>
-  <tr class="impair">
+  <tr class="{$class}">
     <td class="center" colspan="2">
       <small>Si ta formation ne figure pas dans la liste,
       <a href="mailto:support@{#globals.mail.domain#}">contacte-nous</a>.</small>
index 74ef1ee..35ca940 100644 (file)
@@ -33,7 +33,7 @@ CREATE TABLE IF NOT EXISTS profile_education (
   eduid INT(4) NOT NULL DEFAULT 0,
   degreeid INT(4) NOT NULL DEFAULT 0,
   fieldid INT(2) NOT NULL DEFAULT 0,
-  grad_year INT(4) NOT NULL DEFAULT 0,
+  grad_year INT(4) DEFAULT NULL,
   program VARCHAR(255) DEFAULT NULL,
   PRIMARY KEY(id, uid)
 ) CHARSET=utf8;