Benjamin Renard commited on 2014-01-06 02:04:57
Showing 3 changed files, with 45 additions and 8 deletions.
| ... | ... |
@@ -105,11 +105,14 @@ show_contributions=function(group,contributor_name) {
|
| 105 | 105 |
$('.contribution_edit_btn').bind('click',on_contribution_edit_btn_click);
|
| 106 | 106 |
} |
| 107 | 107 |
|
| 108 |
-/********************* |
|
| 109 |
- * Add contributor |
|
| 110 |
- *********************/ |
|
| 108 |
+/****************************** |
|
| 109 |
+ * Add/Edit/remove contributor |
|
| 110 |
+ ******************************/ |
|
| 111 | 111 |
on_click_add_contributor_btn=function() {
|
| 112 | 112 |
$('#add_contributor_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
|
| 113 |
+ $($('#add_contributor_modal h4')[0]).html('Ajouter un participant');
|
|
| 114 |
+ $($('#add_contributor_modal #add_contributor_submit')[0]).html('Ajouter');
|
|
| 115 |
+ $('#view-group #edit_id')[0].value='-1';
|
|
| 113 | 116 |
$('#add_contributor_modal').modal('show');
|
| 114 | 117 |
} |
| 115 | 118 |
|
| ... | ... |
@@ -120,11 +123,13 @@ on_show_add_contributor_modal=function(e) {
|
| 120 | 123 |
on_valid_add_contributor_modal=function() {
|
| 121 | 124 |
var group=groups[$('#add_contributor_modal #group_name')[0].value];
|
| 122 | 125 |
var name=$('#add_contributor_name')[0].value;
|
| 126 |
+ edit_id=$('#view-group #edit_id')[0].value;
|
|
| 123 | 127 |
if (name=='') {
|
| 124 | 128 |
alert('Vous devez saisir un nom !');
|
| 125 | 129 |
return; |
| 126 | 130 |
} |
| 127 |
- if (group.contributorByName(name)!=undefined) {
|
|
| 131 |
+ duplicate=group.contributorByName(name); |
|
| 132 |
+ if (duplicate!=undefined && duplicate.id!=edit_id) {
|
|
| 128 | 133 |
alert('Un contributor porte déjà ce nom !');
|
| 129 | 134 |
return; |
| 130 | 135 |
} |
| ... | ... |
@@ -133,11 +138,17 @@ on_valid_add_contributor_modal=function() {
|
| 133 | 138 |
alert('Vous devez saisir un email !');
|
| 134 | 139 |
return; |
| 135 | 140 |
} |
| 136 |
- if (group.contributorByEmail(email)!=undefined) {
|
|
| 141 |
+ duplicate=group.contributorByEmail(email) |
|
| 142 |
+ if (duplicate!=undefined && duplicate.id!=edit_id) {
|
|
| 137 | 143 |
alert('Un contributor utilise déjà cet email !');
|
| 138 | 144 |
return; |
| 139 | 145 |
} |
| 140 |
- group.contributors.push(new Contributor(name,email)); |
|
| 146 |
+ if(edit_id=='-1') {
|
|
| 147 |
+ group.addContributor(new Contributor(name,email)); |
|
| 148 |
+ } |
|
| 149 |
+ else {
|
|
| 150 |
+ group.replaceContributor(edit_id,new Contributor(name,email)); |
|
| 151 |
+ } |
|
| 141 | 152 |
set_contributors(group); |
| 142 | 153 |
$('#add_contributor_modal').modal('hide');
|
| 143 | 154 |
$('#add_contributor_name')[0].value='';
|
| ... | ... |
@@ -151,6 +162,19 @@ on_close_add_contributor_modal=function () {
|
| 151 | 162 |
$('#add_contributor_email')[0].value='';
|
| 152 | 163 |
} |
| 153 | 164 |
|
| 165 |
+on_edit_contributor_btn_click=function(e) {
|
|
| 166 |
+ var group=groups[$('#view-group #group_name')[0].value];
|
|
| 167 |
+ $('#add_contributor_modal #group_name')[0].value=group.name;
|
|
| 168 |
+ contributor_name=$('#view-group #contributor')[0].value;
|
|
| 169 |
+ contributor=group.contributorByName(contributor_name); |
|
| 170 |
+ $('#view-group #edit_id')[0].value=contributor.id;
|
|
| 171 |
+ $('#add_contributor_modal #add_contributor_name')[0].value=contributor.name;
|
|
| 172 |
+ $('#add_contributor_modal #add_contributor_email')[0].value=contributor.email;
|
|
| 173 |
+ $($('#add_contributor_modal h4')[0]).html('Editer un participant');
|
|
| 174 |
+ $($('#add_contributor_modal #add_contributor_submit')[0]).html('Valider');
|
|
| 175 |
+ $('#add_contributor_modal').modal('show');
|
|
| 176 |
+} |
|
| 177 |
+ |
|
| 154 | 178 |
on_click_del_contributor_btn=function() {
|
| 155 | 179 |
contributor=$('#view-group #contributor')[0].value;
|
| 156 | 180 |
question='Voulez-vous vraiment supprimer '+contributor+' ?'; |
| ... | ... |
@@ -358,6 +382,7 @@ $( document ).ready( function() {
|
| 358 | 382 |
$("#add_contributor_modal").on('hidden.bs.modal',on_close_add_contributor_modal);
|
| 359 | 383 |
$("#add_contributor_modal form").on('submit',on_valid_add_contributor_modal);
|
| 360 | 384 |
|
| 385 |
+ $('#edit_contributor_btn').bind('click',on_edit_contributor_btn_click);
|
|
| 361 | 386 |
$('#del_contributor_btn').bind('click',on_click_del_contributor_btn);
|
| 362 | 387 |
|
| 363 | 388 |
$('#add_contribution_btn').bind('click',on_click_add_contribution_btn);
|
| ... | ... |
@@ -119,6 +119,15 @@ function Group(name,data) {
|
| 119 | 119 |
this.contributions[idx]=c; |
| 120 | 120 |
} |
| 121 | 121 |
|
| 122 |
+ this.addContributor=function(c) {
|
|
| 123 |
+ c.id=this.contributors.length; |
|
| 124 |
+ this.contributors.push(c); |
|
| 125 |
+ } |
|
| 126 |
+ |
|
| 127 |
+ this.replaceContributor=function(idx,c) {
|
|
| 128 |
+ c.id=idx; |
|
| 129 |
+ this.contributors[idx]=c; |
|
| 130 |
+ } |
|
| 122 | 131 |
|
| 123 | 132 |
this.balance=function() {
|
| 124 | 133 |
ret={}
|
| ... | ... |
@@ -141,7 +150,8 @@ function Group(name,data) {
|
| 141 | 150 |
for (idx in data.contributors) {
|
| 142 | 151 |
this.contributors.push(new Contributor( |
| 143 | 152 |
data.contributors[idx].name, |
| 144 |
- data.contributors[idx].email |
|
| 153 |
+ data.contributors[idx].email, |
|
| 154 |
+ idx |
|
| 145 | 155 |
)); |
| 146 | 156 |
} |
| 147 | 157 |
} |
| ... | ... |
@@ -163,9 +173,10 @@ function Group(name,data) {
|
| 163 | 173 |
} |
| 164 | 174 |
} |
| 165 | 175 |
|
| 166 |
-function Contributor(name,email) {
|
|
| 176 |
+function Contributor(name,email,id) {
|
|
| 167 | 177 |
this.name=name; |
| 168 | 178 |
this.email=email; |
| 179 |
+ this.id=id; |
|
| 169 | 180 |
this.export=function() {
|
| 170 | 181 |
return {
|
| 171 | 182 |
'name': this.name, |
| ... | ... |
@@ -77,6 +77,7 @@ body{
|
| 77 | 77 |
<h1><span>Noël</span><small><span id='edit_group_btn' class='glyphicon glyphicon-edit btn btn-sm'></span></small></h1> |
| 78 | 78 |
<form class="form-horizontal" role="form"> |
| 79 | 79 |
<input type='hidden' id='group_name' value='Noël'/> |
| 80 |
+ <input type='hidden' id='edit_id' value='-1' /> |
|
| 80 | 81 |
<div class="form-group"> |
| 81 | 82 |
<div class="input-group"> |
| 82 | 83 |
<span class="input-group-addon">Participant</span> |
| 83 | 84 |