From e18807a84517ab31f95755280fab7c04674c4b11 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Wed, 2 Mar 2011 00:20:35 +0100 Subject: [PATCH] Allows multiple entries for some medals (Closes #1380). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- ChangeLog | 1 + htdocs/javascript/profile.js | 70 ++++++++++++++++++++++++++---------- include/validations/medals.inc.php | 4 +-- modules/profile.php | 6 ++-- modules/profile/decos.inc.php | 72 +++++++++++++++++++++----------------- templates/profile/deco.medal.tpl | 17 +++++---- templates/profile/grades.js.tpl | 4 +++ upgrade/1.1.0/10_deco.sql | 17 +++++++++ 8 files changed, 129 insertions(+), 62 deletions(-) create mode 100644 upgrade/1.1.0/10_deco.sql diff --git a/ChangeLog b/ChangeLog index ff99938..b262a4d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,7 @@ Bug/Wish: * Profile: - #1324,1352: Adds jobs to vcards -JAC + - #1380: Allows multiple entries for some medals -JAC - #1389: Do not require validation for private names modifications -JAC - #1401: Main addresses are displayed before secondary addresses -JAC diff --git a/htdocs/javascript/profile.js b/htdocs/javascript/profile.js index f0ca309..d4899ec 100644 --- a/htdocs/javascript/profile.js +++ b/htdocs/javascript/profile.js @@ -37,11 +37,10 @@ function wizPage_onLoad(id) updateGroupSubLink(); break; case 'deco': - for (var i in names) { - if ($('#medal_' + i).length != 0) { - getMedalName(i); - buildGrade(i, $('#medal_' + i).find('[name*=medal_' + i + '_grade]').val()); - } + var i = 0; + while ($('#medal_' + i).length != 0) { + prepareMedal(i); + ++i; } break; case 'emploi': @@ -57,6 +56,7 @@ var educationDegreeAll; var educationDegreeName; var subgrades; var names; +var multiples; // Publicity follows the following ordering: private < ax < public. var publicity = []; @@ -437,10 +437,17 @@ function updateGroupSubLink() // {{{1 Medals +function prepareMedal(i) +{ + getMedalName($('#medal_' + i).find('[name="medals[' + i + '][id]"]').val()); + buildGrade(i); +} + function updateMedal() { var val = $('#medals').find('[name*=medal_sel]').val(); - if (val && ($('#medal_' + val).length == 0)) { + + if ((multiple[val] && subgrades[val]) || $('.medal_name_' + val).length == 0) { $('#medal_add').show(); } else { $('#medal_add').hide(); @@ -449,55 +456,80 @@ function updateMedal() function getMedalName(id) { - $('#medal_name_' + id).html(names[id]); + $('.medal_name_' + id).html(names[id]); } -function buildGrade(id, current) +function buildGrade(i) { - var grade; - var subg = subgrades[id]; - var obj = $('#medal_grade_' + id); + var id = $('#medal_' + i).find('[name="medals[' + i + '][id]"]').val(); + var current = $('#medal_' + i).find('[name="medals_' + i + '_grade"]').val(); + var subg = subgrades[id]; + var obj = $('#medal_grade_' + i); if (!subg) { - obj.prepend(''); + obj.prepend(''); } else { - var html = 'Agrafe : '; html += ''; - for (grade = 0 ; grade < subg.length ; grade++) { + for (var grade = 0; grade < subg.length; ++grade) { html += '