# my $sql = "select eventdate,count(*) from billjeetickets where eventdate between date('".$p->{startdate}."') and date(date('".$p->{startdate}."') + interval '41 days') and isdisabled is null and id_user not in (".$sess->{id}.") and (invites is null or bt.invites::text like '%\"' || (select senderemail from billjee where id_user=".$sess->{id}.") || '\"%') group by eventdate order by eventdate;";
my $res = $db->dbquerybykey("eventdate",$sql);
$html->{result}->{events} = $res;
- $html->{result}->{sql} = $sql;
+ # $html->{result}->{sql} = $sql;
}
elsif($p->{fn} eq "getbilljeeeditor"){
my $sqlins = "INSERT INTO billjeebooking (".$p->{id}.", ".$sess->{id}.", bookingtime) VALUES(0, 0, current_timestamp);";
if ($p->{onlyfuture} eq "true"){
$olyf = "and bt.eventdate >= CURRENT_DATE";
}
- my $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,bt.dayperiod,bt.eventmsg as msg ,bt.eventtype,case when bt.eventtype ='offer' then 'offre' else 'demande' end as dspeventtype,us.prename,us.surname
+ my $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,bt.dayperiod,bt.eventmsg as msg ,bt.eventtype,case when bt.eventtype ='offer' then 'offre' else 'demande' end as dspeventtype,us.prename,us.surname
from billjeetickets bt
join billjee bj on (bj.id_user=bt.id_user)
join (select users.id,users.prename,users.surname,appaccess.privateenabled from users join appaccess on (appaccess.id_user=users.id) and appaccess.id_app=7) us on (bt.id_user=us.id)
order by bt.eventdate,us.surname,us.prename;";
my $res = $db->dbquerysorted($sql);
- $html->{result}->{onlyfuture} = $p->{onlyfuture};
+ #$html->{result}->{onlyfuture} = $p->{onlyfuture};
$html->{result}->{events} = $res;
- $html->{result}->{sql} = $sql;
+ #$html->{result}->{sql} = $sql;
}
elsif($p->{fn} eq "getbilljeeeventsbyuser"){
#ownevents
- my $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,bt.dayperiod,bt.eventmsg as msg ,bt.eventtype,case when bt.eventtype ='offer' then 'offre' else 'demande' end as dspeventtype,us.prename,us.surname
+ my $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,bt.dayperiod,bt.eventmsg as msg ,bt.eventtype,case when bt.eventtype ='offer' then 'offre' else 'demande' end as dspeventtype,us.prename,us.surname ,'[' || string_agg(bdata::TEXT,',')|| ']' as bookings
from billjeetickets bt
join billjee bj on (bj.id_user=bt.id_user)
+left join (select bbook.id_billjeeticket,row_to_json(bbook) as bdata from (
+select us1.prename,us1.surname,bb1.id_billjeeticket,bb1.id_user,to_char(bb1.bookingtime,'DD.MM.YYYY HH:MI') as bookingtime,bt1.senderemail from billjeebooking bb1 join billjee bt1 on (bb1.id_user=bt1.id_user) join users us1 on (bb1.id_user=us1.id) order by bb1.bookingtime ASC) as bbook) bb on (bt.id=bb.id_billjeeticket)
join (select users.id,users.prename,users.surname,appaccess.privateenabled from users join appaccess on (appaccess.id_user=users.id) and appaccess.id_app=7) us on (bt.id_user=us.id)
-where bt.eventdate between date('".$p->{startdate}."') and date('".$p->{enddate}."') and us.privateenabled=true and us.id=".$sess->{id}.";";
+where bt.eventdate between date('".$p->{startdate}."') and date('".$p->{enddate}."') and us.privateenabled=true and us.id=".$sess->{id}." group by bt.id,us.prename,us.surname;";
- my $res = $db->dbquerysorted($sql);
+ my $res = $db->dbquerysorted($sql);
- $html->{result}->{events} = $res;
+ $html->{result}->{events} = $res;
}
elsif($p->{fn} eq "billjeepublishevent"){
$html->{result}->{id} = $p->{id};
for (var i in data.events){
var card = '<div class="w3-card-4" id="event_'+data.events[i].id+'">';
- card += '<div class="w3-container w3-theme-d3"><h4 id="event_'+data.events[i].id+'_info1">' + data.events[i].dspdate + ' - ' + data.events[i].dayperiod + ' - ' + data.events[i].dspeventtype+ ' de ' + data.events[i].surname + ' ' + data.events[i].prename +'</h4>'+
+ card += '<div class="w3-container w3-theme-d3"><h4 id="event_'+data.events[i].id+'_info1">' + data.events[i].dspdate + ' - ' + data.events[i].dayperiod + ' - ' + data.events[i].dspeventtype+ ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') +'</h4>'+
'</div><div class="w3-container w3-theme-d4"><h5 id="event_'+data.events[i].id+'_info2">' + courts[data.events[i].court] + ((data.events[i].room)?' (' + data.events[i].room + ')':'') + '</h5>'+'</div>';
card += '<div class="w3-container">' + data.events[i].msg + '</div>';
card += '<footer class="w3-container w3-right-align w3-padding-16">';
card += '</button>';
card += '<button class="w3-btn w3-red w3-text-black" onclick="delete_event(\''+ data.events[i].id +'\');"><img src="[% abspath %]images/icons/remove.svg" style="width: 24px;" /> Supprimer </button>';
-
- card += '</footer>';
+ card += '</footer>';
+ if (data.events[i].bookings){
+ var bibok = JSON.parse(data.events[i].bookings);
+ card += '<div class="w3-container">'
+ card += '<h4>Utilisateurs interessés</h4><ul class="w3-ul">';
+ for (var b in bibok){
+ card += '<li>'+ bibok[i].bookingtime + ' <a href="mailto:'+ bibok[i].senderemail+'">' + bibok[b].prename + ' - ' + bibok[b].surname +'</a></li>';
+ }
+ card += '</ul></div>';
+ }
+
card += '</div>';
res.innerHTML = res.innerHTML + card;
}