billjee
authorKilian Saffran <ksaffran@dks.lu>
Mon, 12 Aug 2019 11:17:29 +0000 (13:17 +0200)
committerKilian Saffran <ksaffran@dks.lu>
Mon, 12 Aug 2019 11:17:29 +0000 (13:17 +0200)
backoffice/api/process.cgi
backoffice/tmpl/module/billjee/mytickets.js

index b7faa44..9757262 100644 (file)
@@ -269,7 +269,7 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
       # 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);";
@@ -295,7 +295,7 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
       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)
@@ -306,21 +306,23 @@ and (bt.invites is null or bt.invites::text like '%\"' || (select senderemail fr
 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};
index 1aea253..5729e43 100644 (file)
@@ -32,7 +32,7 @@ function display_results(data){
   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">';
@@ -51,9 +51,18 @@ function display_results(data){
       
       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;" />&nbsp;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;
   }