if (exists($p->{fn})){
my $db = dksdb->new();
- if (($p->{fn} eq "checkvoucher") && (exists($p->{voucher}))) {
+ if ($p->{fn} eq "setpref"){
+ my $sql = "select id from modulepreferences where page='".$p->{page}."' AND id_user=".$sess->{id}.";";
+ my $rid = $db->dbquerysorted($sql);
+ if (defined($rid) && exists($rid->{0}->{id})){
+ $sql = "update modulepreferences set preference='".$p->{data}."' where id=".$rid->{0}->{id}.";";
+ } else {
+ $sql = "insert into modulepreferences (id_user,page,preference) VALUES (".$sess->{id}.",'".$p->{page}."','".$p->{data}."');";
+ }
+ open(LOG,">>tmp/sql.log");
+ print LOG $sql."\n";
+ close(LOG);
+ $db->dbexec($sql);
+ $html->{result} = "Preference saved";
+ }
+ elsif ($p->{fn} eq "getpref"){
+ my $sql = "select preference from modulepreferences where page='".$p->{page}."' AND id_user=".$sess->{id}.";";
+ open(LOG,">>tmp/sql.log");
+ print LOG $sql."\n";
+ close(LOG);
+ my $pref = $db->dbquerysorted($sql);
+ if (defined($pref) && exists($pref->{0}->{preference})){
+ $html->{result} = $pref->{0};
+ }
+ }
+ elsif (($p->{fn} eq "checkvoucher") && (exists($p->{voucher}))) {
# $html->{check} = "1";
my $sql = "select vc.percentdiscount,px.id_app as app,px.package from vouchers vc join prices px on (vc.id_price=px.id) where vc.voucher='".$p->{voucher}."' and vc.expiration <= vc.expiration and vc.used != true;";
my $res = $db->dbquerysorted($sql);
# and bt.id_user not in (".$sess->{id}.")
# and (bt.invites is null or bt.invites::text like '%\"' || (select senderemail from billjee where id_user=".$sess->{id}.")|| '\"%')
# order by bt.eventdate,us.surname,us.prename;";
-my $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,substr(bt.starttime::TEXT,0,5) as starttime,bt.eventmsg as msg ,bt.eventtype,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,substr(bt.starttime::TEXT,1,5) as starttime,bt.eventmsg as msg ,bt.eventtype,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)
and us.privateenabled=true and isdisabled is null ".$olyf."
and bt.invites is null order by bt.eventdate,us.surname,us.prename;";
if ($p->{type} eq "private"){
- $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,substr(bt.starttime::TEXT,0,5) as starttime,bt.eventmsg as msg ,bt.eventtype,us.prename,us.surname
+ $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,substr(bt.starttime::TEXT,1,5) as starttime,bt.eventmsg as msg ,bt.eventtype,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)
where bt.eventdate between date('".$p->{startdate}."') and date('".$p->{enddate}."')
-and us.privateenabled=true and isdisabled is null ".$olyf."
-and and bt.invites::text like '%\"' || (select senderemail from billjee where id_user=".$sess->{id}.")|| '\"%') order by bt.eventdate,us.surname,us.prename;";
+and us.privateenabled=true and isdisabled is null ".$olyf." and bt.id_user not in (".$sess->{id}.")
+and bt.invites::text like '%\"' || (select senderemail from billjee where id_user=".$sess->{id}.")|| '\"%' order by bt.eventdate,us.surname,us.prename;";
}
if ($p->{type} eq "user"){
- $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,substr(bt.starttime::TEXT,0,5) as starttime,bt.eventmsg as msg ,bt.eventtype,bt.eventtype,us.prename,us.surname ,'[' || string_agg(bdata::TEXT,',')|| ']' as bookings
+ $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,substr(bt.starttime::TEXT,1,5) as starttime,bt.eventmsg as msg ,bt.eventtype,bt.eventtype,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_user,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.id=".$sess->{id}." group by bt.id,us.prename,us.surname;";
+where bt.eventdate between date('".$p->{startdate}."') and date('".$p->{enddate}."') and bt.id_user=".$sess->{id}." group by bt.id,us.prename,us.surname;";
}
if ($p->{type} eq "bookings"){
- $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,substr(bt.starttime::TEXT,0,5) as starttime,bt.eventmsg as msg ,bt.eventtype,bt.eventtype,us.prename,us.surname ,'[' || string_agg(bdata::TEXT,',')|| ']' as bookings
+ $sql ="select bt.id,bt.id_user,bt.isdisabled,bt.court,bt.room,to_char(bt.eventdate,'DD.MM.YYYY') as dspdate,substr(bt.starttime::TEXT,1,5) as starttime,bt.eventmsg as msg ,bt.eventtype,bt.eventtype,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_user,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 bdata.id_user=".$sess->{id}." group by bt.id,us.prename,us.surname;";
+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 bb.id_user=".$sess->{id}." group by bt.id,us.prename,us.surname;";
}
my $res = $db->dbquerysorted($sql);
#$html->{result}->{onlyfuture} = $p->{onlyfuture};
table-layout: fixed;
}
-.w3-text-line-through { text-decoration: line-through; }
\ No newline at end of file
+.w3-text-line-through { text-decoration: line-through; }
+
}else {
$vars->{siteurl} = $cgi->url({-base=>1}).dirname($vars->{basepath});
}
+if ($vars->{siteurl} !~ /\/$/){
+ $vars->{siteurl} .= '/';
+}
+
if ($vars->{filepath} ne ""){
$vars->{suffix} = substr($vars->{filepath},rindex($vars->{filepath},'.'));
+
var backoffice = {
- loadpage: function(modulepage,modulename = ''){
+ loadpage: function(modulepage){
//console.log("Load module:" + modulepage);
- $("#modulename").html(modulename);
+ // $("#modulename").html(modulename);
$("#moduleframe").attr('src',modulepage);
},
+ settitle: function(title){
+ $("#modulename").html(title);
+ },
+ setPreference(page,data){
+ console.log("set preference!" + page);
+ var sdata = data;
+ if (typeof(data) == "object"){
+ sdata = JSON.stringify(data);
+ }
+ req.reqdata("POST","process.cgi",{"fn":"setpref","page":page,"data":sdata},null);
+ },
+ getPreference(page,callback){
+ var data = req.reqdata("POST","process.cgi",{"fn":"getpref","page":page},callback);
+ },
loadnewwindow: function(url){
//console.log("New Window load URL:" + url);
window.open(url);
return false;
},
logout: function(){
- $.ajax({
- encoding:"UTF-8",
- url: location.href,
- method: "POST",
- data: "logout=1",
- success: function (data){
- location.href=location.href;
- },
- error: function(data){
-
- console.log("Logout Error Deteceted!");
- },
- async:true
- });
+ req.reqdata("POST",location.href,{"logout":"1"},backoffice.reloadpage);
+
},
reloadpage(page){
-
- alert(page);
- $.ajax({
- encoding:"UTF-8",
- url: page,
- method: "POST",
- data: "logout=1",
- success: function (data){
- location.href=location.href;
- },
- error: function(data){
-
- console.log("Reload Error detected!");
- },
- async:true
- });
+ location.href=location.href;
+
}
}
-$( document ).ready(function() {
+document.addEventListener("DOMContentLoaded", function() {
var body = $('body');
- var contentWrapper = $('.content-wrapper');
- var scroller = $('.container-scroller');
+ var contentWrapper = document.getElementsByClassName('.content-wrapper');
+ var scroller = document.getElementsByClassName('.container-scroller');
// var footer = $('.footer');
- var sidebar = $('.sidebar');
-
- //Add active class to nav-link based on url dynamically
- //Active class can be hard coded directly in html file also as required
+ var sidebar = document.getElementsByClassName('.sidebar');
function addActiveClass(element) {
if (current === "") {
var $this = $(this);
addActiveClass($this);
})
-
- //Close other submenu in sidebar on opening any
-
- // sidebar.on('show.bs.collapse', '.collapse', function() {
- // sidebar.find('.collapse.show').collapse('hide');
- // });
-
-
- //Change sidebar
-
- // $('[data-toggle="minimize"]').on("click", function() {
- // body.toggleClass('sidebar-icon-only');
- // });
-
- //checkbox and radios
- // $(".form-check label,.form-radio label").append('<i class="input-helper"></i>');
});
(function($) {
}
field["fn"] = "savefield";
//console.log(field);
- process_data(field,fieldsaved);
+ req.reqdata("POST",'process.cgi',field,fieldsaved);
return false;
}
-var api = location.origin + location.pathname.substring(0, location.pathname.indexOf('module')) + 'api/';
-//console.log(api);
+
+var api = location.origin + location.pathname.substring(0,location.pathname.lastIndexOf('/')) + '/api/';
+if (location.pathname.indexOf('module') > 0){
+ api = location.origin + location.pathname.substring(0, location.pathname.indexOf('module')) + 'api/';
+}
+console.log(api);
var req = {
reqdata: function(method,url,data,callback=null){
}else {
rdata = data;
}
+
//console.log("Data to send: " + decodeURIComponent(rdata));
var sendurl = api + url;
+ if (url.startsWith("http")){
+ sendurl = url;
+ }
if (method.toUpperCase() == 'GET'){
sendurl = sendurl + '?' + rdata;
}
- //console.log("sending URL: " + method + " => " +sendurl);
+ console.log("sending URL: " + method + " => " +sendurl);
request.open(method.toUpperCase(), sendurl, false);
request.onload = function(){
if (request.status >= 200 && request.status <= 400){
-<script src="vendors/jquery/jquery.min.js"></script>
+<script src="vendors/jquery/jquery.slim.min.js"></script>
<script src="vendors/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="js/backoffice.js?v=1"></script>
+<script src="js/request.js?v1"></script>
\ No newline at end of file
</a>
</li> -->
<li class="nav-item">
- <a class="nav-link" href="javascript:backoffice.loadpage('module/applications/index.html','Applications');">
+ <a class="nav-link" href="javascript:backoffice.loadpage('module/applications/index.html');">
<i class="mdi mdi-apps menu-icon"></i>
<span class="menu-title">Applications</span>
</a>
[% FOREACH myapps = viewapps.execute(session.id) %]
[% IF myapps.id %]
<li class="nav-item">
- <a class="nav-link" href="javascript:backoffice.loadpage('module/[% myapps.app %]/index.html','[% myapps.name %]');">
+ <a class="nav-link" href="javascript:backoffice.loadpage('module/[% myapps.app %]/index.html');">
[% IF myapps.icon %]
<i class="mdi mdi-application menu-icon"></i>
[% ELSE %]
[% FOREACH adm = adminapps.execute(session.id) %]
[% IF adm.id %]
<li class="nav-item">
- <a class="nav-link" href="javascript:backoffice.loadpage('module/[% adm.app %]/index.html','[% adm.name %]');">
+ <a class="nav-link" href="javascript:backoffice.loadpage('module/[% adm.app %]/index.html');">
[% IF adm.icon %]
<i class="mdi mdi-application menu-icon"></i>
[% ELSE %]
<div class="w3-dropdown-hover w3-border">
<button class="w3-button w3-theme-light">Billjee'en <img src="[% abspath %]images/icons/chevron-down.svg" style="width: 24px;" /></button>
<div class="w3-dropdown-content w3-bar-block w3-card-4">
- <a href="javascript:parent.backoffice.loadpage('module/[% module %]/index.html','Recherche public');" class="w3-bar-item w3-button">Recherche Public</a>
- <a href="javascript:parent.backoffice.loadpage('module/[% module %]/privatetickets.html','Recherche privé');" class="w3-bar-item w3-button">Recherche privé</a>
- <a href="javascript:parent.backoffice.loadpage('module/[% module %]/mytickets.html','Mes billets');" class="w3-bar-item w3-button">Mes billets</a>
- <a href="javascript:parent.backoffice.loadpage('module/[% module %]/mybookings.html','Mes envois');" class="w3-bar-item w3-button">Mes envois</a>
+ <a href="javascript:parent.backoffice.loadpage('module/[% module %]/index.html');" class="w3-bar-item w3-button">Recherche Public</a>
+ <a href="javascript:parent.backoffice.loadpage('module/[% module %]/privatetickets.html');" class="w3-bar-item w3-button">Recherche privé</a>
+ <a href="javascript:parent.backoffice.loadpage('module/[% module %]/mytickets.html');" class="w3-bar-item w3-button">Mes billets</a>
+ <a href="javascript:parent.backoffice.loadpage('module/[% module %]/mybookings.html');" class="w3-bar-item w3-button">Mes envois</a>
</div>
</div>
- <a class="w3-bar-item w3-button w3-border" href="javascript:parent.backoffice.loadpage('module/[% module %]/form_billet.html','Nouveau billet');"><img src="[% abspath %]images/icons/plus.svg" style="width: 24px;" /></a>
- <a class="w3-bar-item w3-button w3-border" href="javascript:parent.backoffice.loadpage('module/[% module %]/form_settings.html','Configuration');"><img src="[% abspath %]images/icons/settings.svg" style="width: 24px;" /></a>
+ <a class="w3-bar-item w3-button w3-border" href="javascript:parent.backoffice.loadpage('module/[% module %]/form_billet.html');"><img src="[% abspath %]images/icons/plus.svg" style="width: 24px;" /></a>
+ <a class="w3-bar-item w3-button w3-border" href="javascript:parent.backoffice.loadpage('module/[% module %]/form_settings.html');"><img src="[% abspath %]images/icons/settings.svg" style="width: 24px;" /></a>
</div>
</div>
var canvasData;
var cropper;
-
+parent.backoffice.settitle('Annuaire');
+parent.backoffice.setPreference('lastpage','module/[% module %]/index.html');
function initpage(){
$("select").selectpicker();
<header>
<nav class="navbar navbar-expand-md navbar-light fixed-top bg-light">
<ul class="navbar-nav mr-auto">
- URL de votre page: <a href="[% siteurl %]avocat/[% cat.profile_link %].html" target="_blank">[% siteurl %]avocat/[% cat.profile_link %].html</a>
+ <a href="[% siteurl %]avocat/[% cat.profile_link %].html" target="_blank">Ouvrir votre page public</a>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item">
};
var subscribe_data = {};
var paypal_data ={"amount":{"currency_code":"EUR","value":null},"description":null,"soft_descriptor":"juridig"};
-
+ parent.backoffice.settitle('Applications');
+ parent.backoffice.setPreference('lastpage','module/[% module %]/index.html');
function initpage(){
}
function validate_voucher(){
console.log("get voucher info!");
- process_data({fn:"checkvoucher","voucher":$("#coupon").val()},voucher_callback);
+ req.reqdata("POST",'process.cgi',{fn:"checkvoucher","voucher":$("#coupon").val()},voucher_callback);
return false;
}
pdata['invoice']['description'] = "Souscription juridig.lu - " + appdata[pdata["appinfo"]['id_app']]["name"] + ' - ' + pdata["appinfo"]["package"];
//console.log(pdata);
- process_data(pdata,activate_callback);
+ req.reqdata("POST",'process.cgi',pdata,activate_callback);
//console.log("Data Process finished!");
return false;
pdata["appinfo"][$(this).attr("id")] = $(this).val();
});
- process_data(pdata,paypal_callback);
+ req.reqdata("POST",'process.cgi',pdata,paypal_callback);
//alert('Transaction completed by ' + details+ '!');
});
return;
}
- process_data({"fn":"setbilljeeemail","email_moderated":seml},reload_application);
+ req.reqdata("POST",'process.cgi',{"fn":"setbilljeeemail","email_moderated":seml},reload_application);
}
function reload_application(data){
,"Justice de Paix – Luxembourg": ["JP.0.02","JP.0.15","JP.1.19"]
,"Justice de Paix – Esch-sur-Alzette": ["Salle 1","Salle 2","Salle 3"]
,"Justice de Paix – Diekirch": ["Salle 1"]
-}
\ No newline at end of file
+};
+var tmpltext = {
+ [% pttmpl = dksdb.prepare("select textdefaultoffer, textdefaultrequest from billjee where id_user= ?;") %]
+ [% FOREACH ttmpl = pttmpl.execute(session.id) %]
+ "offer":"[% ttmpl.textdefaultoffer %]",
+ "request":"[% ttmpl.textdefaultrequest %]"
+ [% END %]
+
+};
\ No newline at end of file
var selcourt = null;
var selroom = null;
var seltype = null;
+var evtmsg = null;
+parent.backoffice.settitle('Ajouter / Editer Billjee');
function initpage(){
- console.log("et:" + JSON.stringify(document.getElementById("eventtype").dataset));
+ //console.log("et:" + JSON.stringify(document.getElementById("eventtype").dataset));
//console.log("vet:" + document.getElementById("eventtype").value);
var optcourts = [];
for (var i in court){
itemSelectText: 'Sélectionner...',
});
setrooms();
-
+
// const onlychoices = new Choices('#eventtype',{
// searchEnabled: false,
// itemSelectText: 'Sélectionner...',
},
});
- tinymce.init({
+ evtmsg = tinymce.init({
selector: '.richeditarea',
branding: false,
menubar:false,
dateFormat: "Y-m-d",
"locale": "fr",
minDate: mindate
- //defaultDate: evdate
+
});
flatpickr("#starttime",{
enableTime: true,
"locale": "fr",
defaultDate: "09:00"
});
- //console.log("TEXT: evdate" + evdate);
-
- //console.log("et:" + JSON.stringify(document.getElementById("eventtype").dataset));
+ //setdefaulttext();
+
}
var rfields = []
var tdata = {"fn":"saveform","ident":"ident_billjeetickets_id"};
var inp = document.querySelectorAll('input,select,textarea');
+ var send = true;
for (var i in inp){
if ((inp[i].name) && (inp[i].name.startsWith("billjeetickets") || inp[i].name.startsWith("ident_billjeetickets"))){
if (inp[i].name == "billjeetickets_invites" && inp[i].value != ''){
var addr = inp[i].value.split(",");
tdata[inp[i].name] = addr;
}else {
+ var inp = document.querySelectorAll('input,select,textarea');
tdata[inp[i].name] = inp[i].value;
}
}
+
}
- //console.log(JSON.stringify(tdata));
- req.reqdata("POST","process.cgi",tdata,saved_result);
+
+ req.reqdata("POST","process.cgi",tdata,saved_result);
+
+
return false;
}
function saved_result(data){
+
//console.log("Retrned data!");
document.getElementById("msgsaved").innerHTML = '<div class="w3-panel w3-green"><p>le billjee à été sauvegardé.</p></div>';
setTimeout("cleanmsg();",3000);
}
return false;
}
+
+function setdefaulttext(){
+ var text = document.getElementById("eventmsg").innerHTML;
+ var selty = document.getElementById("eventtype").value;
+ if (selty){
+ tinymce.get('eventmsg').setContent(tmpltext[selty]);
+ }
+ return false;
+}
\ No newline at end of file
<div class="w3-row">
<div class="w3-container m4 w3-col ">
<label for="eventtype" class="w3-label">Type [% bill.0.eventtype %]</label>
- <select class="w3-select onlyselect" id="eventtype" name="billjeetickets_eventtype" >
+ <select class="w3-select onlyselect" id="eventtype" name="billjeetickets_eventtype" onchange="setdefaulttext();" >
[% etypes = {offer = 'Offre de disponibilité',request = 'Demande de service' } %]
[% FOREACH k IN etypes.keys %]
<option value="[% k %]" [% IF k == bill.0.eventtype %] selected[% END %]>[% etypes.$k %]</option>
+parent.backoffice.settitle('Configuration Billjee');
function initpage(){
const choicesedit = new Choices('.selectedit',{
var bltype="public";
var setnearest = true;
var onlyfuture = true;
-
+parent.backoffice.settitle('Recherche public');
+parent.backoffice.setPreference('lastpage','module/[% module %]/index.html');
function initpage(){
loadcalendars();
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].starttime + ' - ' + data.events[i].court + ' - ' + data.events[i].room +'</h4>'+
- '</div><div class="w3-container '+ ((data.events[i].eventtype == 'offer')?'w3-orange':'w3-yellow')+'"><h5 id="event_'+data.events[i].id+'_info2">' + ((data.events[i].eventtype == 'offer')?'Offre de disponibilité':'Demande de service') + ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') + '</h5>'+'</div>';
+ '</div><div class="w3-container '+ ((data.events[i].eventtype == 'offer')?'w3-pink':'w3-yellow')+'"><h5 id="event_'+data.events[i].id+'_info2">' + ((data.events[i].eventtype == 'offer')?'Offre de disponibilité':'Demande de service') + ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') + '</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 class=" w3-btn w3-theme-l2 w3-margin-right" onclick="contact_publisher(\''+ data.events[i].id +'\');"><img src="[% abspath %]images/icons/send.svg" style="width: 24px;" /> Contacter </button>';
function edit_event(id){
//console.log(this);
- parent.backoffice.loadpage('module/[% module %]/form_billet.html?id=' + id,'Editer Billjee');
+ parent.backoffice.loadpage('module/[% module %]/form_billet.html?id=' + id);
return false;
}
// "ta-luxembourg":"tribunal d'arrondissement - Luxembourg",
// "ta-diekirch":"tribunal d'arrondissement - Diekirch"
// }
-
+parent.backoffice.settitle('Mes envois');
+parent.backoffice.setPreference('lastpage','module/[% module %]/mybookings.html');
function initpage(){
loadcalendars();
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].starttime + ' - ' + data.events[i].court + ' - ' + data.events[i].room +'</h4>'+
- '</div><div class="w3-container '+ ((data.events[i].eventtype == 'offer')?'w3-orange':'w3-yellow')+'"><h5 id="event_'+data.events[i].id+'_info2">' + ((data.events[i].eventtype == 'offer')?'Offre de disponibilité':'Demande de service') + ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') + '</h5>'+'</div>';
+ '</div><div class="w3-container '+ ((data.events[i].eventtype == 'offer')?'w3-pink':'w3-yellow')+'"><h5 id="event_'+data.events[i].id+'_info2">' + ((data.events[i].eventtype == 'offer')?'Offre de disponibilité':'Demande de service') + ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') + '</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 class="w3-btn w3-theme-l2 w3-margin-right" onclick="edit_event(\''+ data.events[i].id +'\');"><img src="[% abspath %]images/icons/edit.svg" style="width: 24px;" data-id="\''+ data.events[i].id +'\'"/> Editer </button>';
- //if (data.events.isdisabled)
- //card += '<button class="w3-btn w3-theme-l2 w3-margin-right" ><img src="[% abspath %]images/icons/publish.svg" style="width: 24px;" /> Publier </button>';
- //console.log("Dis: " + data.events[i].isdisabled) ;
+
card += '<button class="w3-btn w3-theme-l2 w3-margin-right" id="btnpublish_'+data.events[i].id+'" data-isdisabled="'+ ((data.events[i].isdisabled == 1)?1:'') + '" onclick="publish_event(\''+ data.events[i].id +'\');">';
if (data.events[i].isdisabled == "1"){
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">';
+ card += '<h4>Propose marquée dans juridig.lu le</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 += '<li>'+ bibok[i].bookingtime + ' à </li>';
}
card += '</ul></div>';
}
}
function edit_event(id){
- parent.backoffice.loadpage('module/[% module %]/form_billet.html?id=' + id,'Editer Billjee');
+ parent.backoffice.loadpage('module/[% module %]/form_billet.html?id=' + id);
return false;
}
// "ta-luxembourg":"tribunal d'arrondissement - Luxembourg",
// "ta-diekirch":"tribunal d'arrondissement - Diekirch"
// }
-
+parent.backoffice.settitle('mes billets');
+parent.backoffice.setPreference('lastpage','module/[% module %]/mytickets.html');
function initpage(){
loadcalendars();
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].starttime + ' - ' + data.events[i].court + ' - ' + data.events[i].room +'</h4>'+
- '</div><div class="w3-container '+ ((data.events[i].eventtype == 'offer')?'w3-orange':'w3-yellow')+'"><h5 id="event_'+data.events[i].id+'_info2">' + ((data.events[i].eventtype == 'offer')?'Offre de disponibilité':'Demande de service') + ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') + '</h5>'+'</div>';
+ '</div><div class="w3-container '+ ((data.events[i].eventtype == 'offer')?'w3-pink':'w3-yellow')+'"><h5 id="event_'+data.events[i].id+'_info2">' + ((data.events[i].eventtype == 'offer')?'Offre de disponibilité':'Demande de service') + ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') + '</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>';
+
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 += '<li>'+ bibok[b].bookingtime + ' <a href="mailto:'+ bibok[b].senderemail+'">' + bibok[b].prename + ' - ' + bibok[b].surname +'</a></li>';
}
card += '</ul></div>';
+ bibok=null;
}
- card += '</div>';
+ card += '</div><br/>';
res.innerHTML = res.innerHTML + card;
}
//
}
function edit_event(id){
- parent.backoffice.loadpage('module/[% module %]/form_billet.html?id=' + id,'Editer Billjee');
+ parent.backoffice.loadpage('module/[% module %]/form_billet.html?id=' + id);
return false;
}
// "ta-luxembourg":"tribunal d'arrondissement - Luxembourg",
// "ta-diekirch":"tribunal d'arrondissement - Diekirch"
// }
+parent.backoffice.settitle('Recherche privé');
+parent.backoffice.setPreference('lastpage','module/[% module %]/privatetickets.html');
function initpage(){
loadcalendars();
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].starttime + ' - ' + data.events[i].court + ' - ' + data.events[i].room +'</h4>'+
- '</div><div class="w3-container '+ ((data.events[i].eventtype == 'offer')?'w3-orange':'w3-yellow')+'"><h5 id="event_'+data.events[i].id+'_info2">' + ((data.events[i].eventtype == 'offer')?'Offre de disponibilité':'Demande de service') + ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') + '</h5>'+'</div>';
+ '</div><div class="w3-container '+ ((data.events[i].eventtype == 'offer')?'w3-pink':'w3-yellow')+'"><h5 id="event_'+data.events[i].id+'_info2">' + ((data.events[i].eventtype == 'offer')?'Offre de disponibilité':'Demande de service') + ((data.events[i].id_user != userid)?' de ' + data.events[i].surname + ' ' + data.events[i].prename:'') + '</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 class=" w3-btn w3-theme-l2 w3-margin-right" onclick="contact_publisher(\''+ data.events[i].id +'\');"><img src="[% abspath %]images/icons/send.svg" style="width: 24px;" /> Contacter </button>';
function edit_event(id){
//console.log(this);
- parent.backoffice.loadpage('module/[% module %]/form_billet.html?id=' + id,'Editer Billjee');
+ parent.backoffice.loadpage('module/[% module %]/form_billet.html?id=' + id);
return false;
}
+<style>
+
+.loader {
+ border: 16px solid #f3f3f3; /* Light grey */
+ border-top: 16px solid #3498db; /* Blue */
+ border-radius: 50%;
+ width: 120px;
+ height: 120px;
+ animation: spin 2s linear infinite;
+}
+
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+</style>
\ No newline at end of file
--- /dev/null
+parent.backoffice.settitle('');
+function initpage(){
+ parent.backoffice.getPreference('lastpage',loadlastpage);
+}
+
+function loadlastpage(data){
+ console.log("pref lastpage = " + JSON.stringify(data));
+ if (data['preference']){
+ parent.backoffice.loadpage(data.preference);
+ } else {
+ parent.backoffice.loadpage('module/applications/index.html');
+ }
+}
\ No newline at end of file
-<h2>Dashboard</h2>
\ No newline at end of file
+<div class="w3-display-container w3-center" style="margin-top: 100px;margin-left: 40vw;"><div class="w3-display-middle loader"></div></div>
\ No newline at end of file
+<script src="[% pagename %].js"></script>
\ No newline at end of file
+++ /dev/null
- var apiurl = "[% baseurl %]/api/";
- function process_data(data,callback){
- //console.log("process");
- //console.log(data);
- strdata = "";
- for (var i in data){
- if (typeof(data[i]) == "object"){
-
- strdata += "&" + i + "=" + encodeURIComponent(JSON.stringify(data[i]));
- } else {
- strdata += "&" + i + "=" + encodeURIComponent(data[i]);
- }
-
- }
- //console.log(apiurl + 'process.cgi?' + strdata);
- $.ajax({
- encoding:"UTF-8",
- url: apiurl + 'process.cgi' ,
- method: "POST",
- data: strdata,
- success: function (data){
- //console.log("returned data");
- //console.log(data);
- if (data && data.result){
- callback(data.result);
- } else {
- callback({});
- }
- return false;
- },
- error: function(data){
- console.log("Process Error detected!");
- console.log(data);
-
- },
- async:true
- });
- return false;
- }
-
- $( document ).ready(function() {
-
- initpage();
-});
-
+parent.backoffice.settitle('Mon Profile');\r
+parent.backoffice.setPreference('lastpage','module/[% module %]/index.html');\r
function initpage(){\r
\r
}\r
\r
<ul class="navbar-nav mr-auto">\r
<li class="nav-item">\r
- <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/timesheets.html','Rendez-Vous - Horaires');"><i class="mdi mdi-chevron-double-left"> Horaires</i></button>\r
+ <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/timesheets.html');"><i class="mdi mdi-chevron-double-left"> Horaires</i></button>\r
</li>\r
</ul>\r
\r
\r
<ul class="navbar-nav mr-auto">\r
<li class="nav-item">\r
- <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/index.html','Rendez-Vous');"><i class="mdi mdi-chevron-double-left"> Calendrier</i></button>\r
+ <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/index.html');"><i class="mdi mdi-chevron-double-left"> Calendrier</i></button>\r
</li>\r
</ul>\r
\r
\r
<ul class="navbar-nav mr-auto">\r
<li class="nav-item">\r
- <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/timesheets.html','Rendez-Vous - Horaires');"><i class="mdi mdi-chevron-double-left"> Horaires</i></button>\r
+ <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/timesheets.html');"><i class="mdi mdi-chevron-double-left"> Horaires</i></button>\r
</li>\r
</ul>\r
\r
var eventObj = info.event;\r
console.log('Clicked Event');\r
console.log(eventObj);\r
- parent.backoffice.loadpage('module/[% module %]/form_rendezvous.html','Rendez-Vous');\r
+ parent.backoffice.loadpage('module/[% module %]/form_rendezvous.html');\r
},\r
viewSkeletonRender: function(info){\r
console.log("SKEL Render");\r
\r
var pdata = {"fn":"getevents","types":rdvtypes,startdate:calendar.view.props.dateProfile.currentRange.start.toISOString().substring(0,10),enddate:calendar.view.props.dateProfile.currentRange.end.toISOString().substring(0,10)};\r
//console.log(pdata);\r
- process_data(pdata,events_callback);\r
+ req.reqdata("POST",'process.cgi',pdata,events_callback);\r
}\r
\r
function removeEvents(){\r
\r
<ul class="navbar-nav mr-auto">\r
<li class="nav-item">\r
- <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/timesheets.html','Rendez-Vous - Horarires');">Horaires</button>\r
+ <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/timesheets.html');">Horaires</button>\r
<!-- <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/form_rendezvous.html','Rendez-Vous');"><i class="mdi mdi-plus"></i> RDV</button> -->\r
</li>\r
<li class="nav-item">\r
}\r
\r
function add_timesheet(){\r
- parent.backoffice.loadpage('module/[% module %]/form_timesheet.html','Rendez-Vous - Horaire');\r
+ parent.('module/[% module %]/form_timesheet.html');\r
}\r
\r
function edit_timesheet(id){\r
- parent.backoffice.loadpage('module/[% module %]/form_timesheet.html?id='+ id,'Rendez-Vous - Horaire');\r
+ parent.backoffice.loadpage('module/[% module %]/form_timesheet.html?id='+ id);\r
}\r
\r
function delete_timesheet(id){\r
if (confirm("êtes-vous sûr de supprimer cet horaire?")){\r
- //process_data({"fn":"delete_row","ident_id":id},delete_ts_callback);\r
+ //req.reqdata("POST",'process.cgi',{"fn":"delete_row","ident_id":id},delete_ts_callback);\r
}\r
}\r
\r
}\r
\r
function add_exception(){\r
- parent.backoffice.loadpage('module/[% module %]/form_exception.html','Rendez-Vous - Exception');\r
+ parent.backoffice.loadpage('module/[% module %]/form_exception.html');\r
}\r
\r
function edit_exception(id){\r
- parent.backoffice.loadpage('module/[% module %]/form_exception.html?id='+ id,'Rendez-Vous - Exception');\r
+ parent.backoffice.loadpage('module/[% module %]/form_exception.html?id='+ id);\r
}\r
\r
function delete_exception(id){\r
if (confirm("êtes-vous sûre de supprimer cette exception?")){\r
- //process_data({"fn":"delete_row","ident_id":id},delete_ex_callback);\r
+ //req.reqdata("POST",'process.cgi',{"fn":"delete_row","ident_id":id},delete_ex_callback);\r
}\r
}\r
\r
\r
<ul class="navbar-nav mr-auto">\r
<li class="nav-item">\r
- <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/index.html','Rendez-Vous');"><i class="mdi mdi-chevron-double-left"> Calendrier</i></button>\r
+ <button class="btn btn-primary" onclick="parent.backoffice.loadpage('module/[% module %]/index.html');"><i class="mdi mdi-chevron-double-left"> Calendrier</i></button>\r
</li>\r
</ul>\r
\r
+parent.backoffice.settitle('Editer Utilisateurs');
function initpage(){
}
+parent.backoffice.settitle('Utilisateurs');
+parent.backoffice.setPreference('lastpage','module/[% module %]/index.html');
function initpage(){
}
function delete_user(id){
if (confirm("Really delete selected user?")){
- process_data( {fn:"deleteuser", "id_user":id },reload_userpage);
+ req.reqdata("POST",'process.cgi', {fn:"deleteuser", "id_user":id },reload_userpage);
}
return false;
}
function reload_userpage(data){
- parent.backoffice.loadpage('module/users/index.html','Users');
+ parent.backoffice.loadpage('module/users/index.html');
return false;
}
<td>[% aus.apps %]</td>
<td>[% aus.othergroups %]</td>
<td>
- <button class="btn btn-info" onclick="parent.backoffice.loadpage('module/users/form_users.html?id=[% aus.id %]','App User');"><i class="mdi mdi-pencil"></i></button>
+ <button class="btn btn-info" onclick="parent.backoffice.loadpage('module/users/form_users.html?id=[% aus.id %]');"><i class="mdi mdi-pencil"></i></button>
[% IF aus.id != session.id %]
<button class="btn btn-danger" onclick="delete_user('[% aus.id %]');return false;"><i class="mdi mdi-trash-can"></i></button>
[% END %]
+parent.backoffice.settitle('Ajouter Coupons');
function initpage(){
}
function generate_vouchers(){
var discpercent = document.getElementById("discount").value/100;
- process_data(
+ req.reqdata("POST",'process.cgi',
{fn:"generatevouchers",
"id_price":document.getElementById("id_package").value,
"expiration":document.getElementById("expiration").value,
function reload_vouchers(data){
- parent.backoffice.loadpage('module/vouchers/index.html','Vouchers');
+ parent.backoffice.loadpage('module/vouchers/index.html');
return false;
}
+parent.backoffice.settitle('Coupons');\r
+parent.backoffice.setPreference('lastpage','module/[% module %]/index.html');\r
function initpage(){\r
\r
}\r
\r
function reload_vouchers(data){\r
if (confirm("Really delete selected voucher?")){\r
- parent.backoffice.loadpage('module/vouchers/index.html','Vouchers');\r
+ parent.backoffice.loadpage('module/vouchers/index.html');\r
}\r
return false;\r
}\r
\r
function delete_voucher(id){\r
- process_data( {fn:"deletevoucher", "id_voucher":id },reload_vouchers);\r
+ req.reqdata("POST",'process.cgi', {fn:"deletevoucher", "id_voucher":id },reload_vouchers);\r
return false;\r
}
\ No newline at end of file
<th>Discount</th>\r
<th>Package Price</th>\r
<th>duration (month)</th>\r
- <th><button class="btn btn-info" onclick="parent.backoffice.loadpage('module/vouchers/form_voucher.html','Add Vouchers');"><i class="mdi mdi-plus"></i></button></th>\r
+ <th><button class="btn btn-info" onclick="parent.backoffice.loadpage('module/vouchers/form_voucher.html');"><i class="mdi mdi-plus"></i></button></th>\r
</tr>\r
</thead>\r
\r
[% INCLUDE block/sidebar.tt %]
<div class="main-panel">
<div class="content-wrapper" style="margin: 0px; padding: 0px;">
- <iframe id="moduleframe" src="module/applications/index.html" style="bottom: 0px;border: 0px;height: 92vh;width: 100%; overflow-y: scroll;"></iframe>
+ <iframe id="moduleframe" src="module/dashboard/index.html" style="bottom: 0px;border: 0px;height: 92vh;width: 100%; overflow-y: scroll;"></iframe>
</div>
</div>
</div>
[% IF module != 'billjee' %]\r
<script src="[% abspath %]vendors/jquery/jquery.min.js"></script>\r
<script src="[% abspath %]vendors/bootstrap/js/bootstrap.bundle.min.js"></script>\r
- <script src="../js/modules_global.js"></script> \r
+ \r
[% ELSE %]\r
[% END %]\r
[% INCLUDE "module/$module/javascript.tt" %]\r
-<script type="text/javascript" src="[% abspath %]vendor/jquery/jquery.min.js"></script> \r
+<script type="text/javascript" src="[% abspath %]vendor/jquery/jquery.slim.min.js"></script> \r
<script type="text/javascript" src="[% abspath %]vendor/bootstrap/js/bootstrap.bundle.min.js"></script> \r
-<!-- <script type="text/javascript" src="[% basepath %]/js/SmoothScroll.js"></script> -->\r
-<!-- <script type="text/javascript" src="[% basepath %]/js/jqBootstrapValidation.js"></script> -->\r
-<!-- <script type="text/javascript" src="js/contact_me.js"></script> -->\r
[% IF link %]\r
<script type="text/javascript" src="[% abspath %]vendor/jq-datetimepicker/jquery.datetimepicker.full.min.js"></script> \r
<script type="text/javascript" src="[% abspath %]vendor/qrcode/qrcode.min.js"></script> \r
<script type="text/javascript" src="[% abspath %]js/annuaire.js"></script>\r
<script type="text/javascript" src="[% abspath %]js/rendezvous.js"></script> \r
[% ELSE %]\r
-<!-- <script type="text/javascript" src="[% abspath %]js/nivo-lightbox.js"></script> -->\r
-<!-- <script type="text/javascript" src="[% abspath %]js/jquery.isotope.js"></script> -->\r
-\r
<script type="text/javascript" src="[% abspath %]js/main.js"></script>\r
[% END %]\r
\r