Add uuid to group and refer group in gouplist with their uuid instead of name
This commit is contained in:
parent
7e5fb88a87
commit
ad5ed6fd1e
3 changed files with 51 additions and 31 deletions
40
inc/myco.js
40
inc/myco.js
|
@ -9,7 +9,7 @@ refresh_group_list=function() {
|
|||
}
|
||||
else {
|
||||
groups.each(function(idx,group) {
|
||||
$(grouplist).prepend('<li><a class="group-choice">'+group.name+'</a></li>');
|
||||
$(grouplist).prepend('<li><a class="group-choice" data-uuid="'+group.uuid+'">'+group.name+'</a></li>');
|
||||
});
|
||||
|
||||
$('a.group-choice').each(function(idx,a) {
|
||||
|
@ -43,11 +43,11 @@ on_valid_add_group_modal=function (e) {
|
|||
alert('Ce groupe exite déjà !');
|
||||
return;
|
||||
}
|
||||
groups[name]=new Group(name);
|
||||
var uuid=groups.newGroup(name);
|
||||
refresh_group_list();
|
||||
$('#add_group_modal').modal('hide');
|
||||
groups.save();
|
||||
view_group(groups[name]);
|
||||
view_group(groups[uuid]);
|
||||
}
|
||||
|
||||
on_close_add_group_modal=function () {
|
||||
|
@ -58,7 +58,7 @@ on_close_add_group_modal=function () {
|
|||
* Nav bars
|
||||
****************/
|
||||
on_group_choice_click=function(e) {
|
||||
view_group(groups[$(e.target).html()]);
|
||||
view_group(groups[$(e.target).data('uuid')]);
|
||||
navbar_collapse_hide();
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ view_home=function() {
|
|||
sum+=value;
|
||||
diff='<td class="positive">+'+value.toFixed(2)+' €</td>';
|
||||
}
|
||||
tbody.html(tbody.html()+'<tr><td><a class="group-link">'+g+'</a></td>'+diff+'</tr>');
|
||||
tbody.html(tbody.html()+'<tr><td><a class="group-link">'+balances[g].name+'</a></td>'+diff+'</tr>');
|
||||
}
|
||||
}
|
||||
$('#view-home #mybalances a.group-link').bind('click',function(e) {
|
||||
|
@ -129,8 +129,8 @@ view_home=function() {
|
|||
* View group
|
||||
****************/
|
||||
view_group=function(group) {
|
||||
$('#view-group').data('uuid',group.uuid);
|
||||
$('#view-group h1 span:first').html(group.name);
|
||||
$('#view-group #group_name')[0].value=group.name;
|
||||
set_contributors(group);
|
||||
on_contributor_change();
|
||||
view_part('#view-group');
|
||||
|
@ -149,7 +149,7 @@ set_contributors=function(group) {
|
|||
}
|
||||
|
||||
on_contributor_change=function(e) {
|
||||
show_contributions(groups[$('#view-group #group_name')[0].value],$('#view-group #contributor')[0].value);
|
||||
show_contributions(groups[$('#view-group').data('uuid')],$('#view-group #contributor')[0].value);
|
||||
}
|
||||
|
||||
show_contributions=function(group,contributor_name) {
|
||||
|
@ -179,7 +179,7 @@ show_contributions=function(group,contributor_name) {
|
|||
* Add/Edit/remove contributor
|
||||
******************************/
|
||||
on_click_add_contributor_btn=function() {
|
||||
$('#add_contributor_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
|
||||
$('#add_contributor_modal').data('group-uuid',('#view-group').data('uuid'))
|
||||
$($('#add_contributor_modal h4')[0]).html('Ajouter un participant');
|
||||
$($('#add_contributor_modal #add_contributor_submit')[0]).html('Ajouter');
|
||||
$('#view-group #edit_id')[0].value='-1';
|
||||
|
@ -192,7 +192,7 @@ on_show_add_contributor_modal=function(e) {
|
|||
|
||||
on_valid_add_contributor_modal=function(e) {
|
||||
e.preventDefault();
|
||||
var group=groups[$('#add_contributor_modal #group_name')[0].value];
|
||||
var group=groups[$('#add_contributor_modal').data('group-uuid')];
|
||||
var name=$('#add_contributor_name')[0].value;
|
||||
edit_id=$('#view-group #edit_id')[0].value;
|
||||
if (name=='') {
|
||||
|
@ -233,8 +233,8 @@ on_close_add_contributor_modal=function () {
|
|||
}
|
||||
|
||||
on_edit_contributor_btn_click=function(e) {
|
||||
var group=groups[$('#view-group #group_name')[0].value];
|
||||
$('#add_contributor_modal #group_name')[0].value=group.name;
|
||||
var group=groups[$('#view-group').data('uuid')];
|
||||
$('#add_contributor_modal').data('group-uuid',group.uuid);
|
||||
contributor_name=$('#view-group #contributor')[0].value;
|
||||
contributor=group.contributorByName(contributor_name);
|
||||
$('#view-group #edit_id')[0].value=contributor.id;
|
||||
|
@ -252,7 +252,7 @@ on_click_del_contributor_btn=function() {
|
|||
}
|
||||
|
||||
on_confirm_del_contributor=function(contributor) {
|
||||
var group=groups[$('#view-group #group_name')[0].value];
|
||||
var group=groups[$('#view-group').data('uuid')];
|
||||
group.removeContributor(contributor);
|
||||
set_contributors(group);
|
||||
groups.save();
|
||||
|
@ -272,7 +272,7 @@ on_show_add_contribution_modal=function(e) {
|
|||
}
|
||||
|
||||
on_click_add_contribution_btn=function() {
|
||||
$('#add_contribution_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
|
||||
$('#add_contribution_modal').data('group-uuid',$('#view-group').data('uuid'));
|
||||
$('#add_contribution_modal #edit_uuid')[0].value='-1';
|
||||
$($('#add_contribution_modal h4')[0]).html('Ajouter une contribution');
|
||||
$($('#add_contribution_modal #add_contribution_submit')[0]).html('Ajouter');
|
||||
|
@ -281,7 +281,7 @@ on_click_add_contribution_btn=function() {
|
|||
|
||||
on_valid_add_contribution_modal=function(e) {
|
||||
e.preventDefault();
|
||||
var group=groups[$('#add_contribution_modal #group_name')[0].value];
|
||||
var group=groups[$('#add_contribution_modal').data('group-uuid')];
|
||||
var contributor_name=$('#add_contribution_contributor_name')[0].value;
|
||||
var contributor=group.contributorByName(contributor_name);
|
||||
if (contributor==undefined) {
|
||||
|
@ -342,7 +342,7 @@ on_close_add_contribution_modal=function () {
|
|||
}
|
||||
|
||||
on_contribution_delete_btn_click=function(e) {
|
||||
var group=groups[$('#view-group #group_name')[0].value];
|
||||
var group=groups[$('#view-group').data('uuid')];
|
||||
contribution_uuid=$($(e.target).parents('div')[0]).data('uuid');
|
||||
contribution=group.contributions[contribution_uuid];
|
||||
myconfirm('Etes-vous sûre de vouloir supprimer la participation '+contribution.getTitle()+' de '+contribution.contributor.name+' ?',on_confirm_contribution_delete,null,{'group':group,'contribution_uuid':contribution_uuid, 'contribution': contribution} );
|
||||
|
@ -355,8 +355,8 @@ on_confirm_contribution_delete=function(data) {
|
|||
}
|
||||
|
||||
on_contribution_edit_btn_click=function(e) {
|
||||
var group=groups[$('#view-group #group_name')[0].value];
|
||||
$('#add_contribution_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
|
||||
var group=groups[$('#view-group').data('uuid')];
|
||||
$('#add_contribution_modal').data('group-uuid',$('#view-group').data('uuid'));
|
||||
$($('#add_contribution_modal h4')[0]).html('Editer une contribution');
|
||||
$($('#add_contribution_modal #add_contribution_submit')[0]).html('Valider');
|
||||
contribution_uuid=$($(e.target).parents('div')[0]).data('uuid');
|
||||
|
@ -389,7 +389,7 @@ on_confirm_clear_local_data=function(data) {
|
|||
*********************/
|
||||
|
||||
on_display_balance_btn_click=function(e) {
|
||||
group=groups[$('#view-group #group_name')[0].value];
|
||||
group=groups[$('#view-group').data('uuid')];
|
||||
display_balance(group);
|
||||
}
|
||||
|
||||
|
@ -415,12 +415,12 @@ display_balance=function(group) {
|
|||
*********************/
|
||||
|
||||
on_remove_group_btn_click=function(e) {
|
||||
group=groups[$('#view-group #group_name')[0].value];
|
||||
group=groups[$('#view-group').data('uuid')];
|
||||
myconfirm('Etes-vous sûre de vouloir supprimer le group '+group.name+' ?',on_confirm_remove_group,null,group);
|
||||
}
|
||||
|
||||
on_confirm_remove_group=function(group) {
|
||||
if(groups.removeGroup(group.name)) {
|
||||
if(groups.removeGroup(group.uuid)) {
|
||||
groups.save();
|
||||
location.reload();
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ function GroupList() {
|
|||
var data=JSON.parse(localStorage.groups);
|
||||
this.lastChange=data.lastChange;
|
||||
for (el in data.groups) {
|
||||
this[el]=new Group(el,data.groups[el]);
|
||||
this[el]=new Group(el,false,data.groups[el]);
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
|
@ -41,7 +41,7 @@ function GroupList() {
|
|||
}
|
||||
}
|
||||
for (el in groups) {
|
||||
this[el]=new Group(el,groups[el]);
|
||||
this[el]=new Group(el,false,groups[el]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -77,9 +77,21 @@ function GroupList() {
|
|||
return (jQuery.type(el)=='object' && jQuery.type(el.isGroup)=='function' && el.isGroup());
|
||||
}
|
||||
|
||||
this.removeGroup=function(name) {
|
||||
if (this.isGroup(this[name])) {
|
||||
delete this[name];
|
||||
this.byName=function(name) {
|
||||
for (el in this) {
|
||||
if(this.isGroup(this[el])) {
|
||||
if (this[el].name==name) {
|
||||
return this[el];
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
this.removeGroup=function(uuid) {
|
||||
if (this.isGroup(this[uuid])) {
|
||||
delete this[uuid];
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -87,14 +99,23 @@ function GroupList() {
|
|||
|
||||
this.balances=function(fct) {
|
||||
return this.each(function(idx,group) {
|
||||
return group.balance();
|
||||
bal=group.balance();
|
||||
bal.name=group.name;
|
||||
return bal;
|
||||
});
|
||||
}
|
||||
|
||||
this.newGroup=function(name,uuid) {
|
||||
var uuid=uuid||generate_uuid();
|
||||
this[uuid]=new Group(uuid,name);
|
||||
return uuid;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function Group(name,data) {
|
||||
this.name=name;
|
||||
function Group(uuid,name,data) {
|
||||
this.uuid=uuid || generate_uuid();
|
||||
this.name=name || false;
|
||||
this.contributors=[];
|
||||
this.contributions={};
|
||||
this.deletedContributions={};
|
||||
|
@ -114,6 +135,7 @@ function Group(name,data) {
|
|||
contributions[uuid]=this.contributions[uuid].export();
|
||||
}
|
||||
return {
|
||||
'uuid': this.uuid,
|
||||
'name': encodeURIComponent(this.name),
|
||||
'contributors': contributors,
|
||||
'contributions': contributions,
|
||||
|
@ -227,6 +249,7 @@ function Group(name,data) {
|
|||
*/
|
||||
if (jQuery.type(data)=='object') {
|
||||
try {
|
||||
this.uuid=data.uuid;
|
||||
this.name=data.name;
|
||||
if (jQuery.type(data.contributors) == 'array') {
|
||||
for (idx in data.contributors) {
|
||||
|
|
|
@ -110,7 +110,6 @@ body{
|
|||
<div id='view-group' class='part'>
|
||||
<h1><span>Noël</span><small><span id='edit_group_btn' class='glyphicon glyphicon-edit btn btn-sm'></span></small></h1>
|
||||
<form class="form-horizontal" role="form">
|
||||
<input type='hidden' id='group_name' value='Noël'/>
|
||||
<input type='hidden' id='edit_id' value='-1' />
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
|
@ -200,7 +199,6 @@ body{
|
|||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" role="form">
|
||||
<input type='hidden' id='group_name' />
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">Nom *</span>
|
||||
|
@ -269,7 +267,6 @@ body{
|
|||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" role="form">
|
||||
<input type='hidden' id='group_name' />
|
||||
<input type='hidden' id='edit_uuid' value='-1' />
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
|
|
Loading…
Reference in a new issue