From: Kilian Saffran Date: Mon, 16 Nov 2020 07:07:07 +0000 (+0100) Subject: v20201116 X-Git-Url: http://cloud.dks.lu/git/?a=commitdiff_plain;h=e33fd1744669c575565f46efc318111082a33a65;p=oldbell_lu.git v20201116 --- diff --git a/admin/lib/web/rendezvous.php b/admin/lib/web/rendezvous.php index 86cb73b..70dd8af 100644 --- a/admin/lib/web/rendezvous.php +++ b/admin/lib/web/rendezvous.php @@ -28,9 +28,7 @@ class rendezvous { - public function __destruct(){ - $this->dbh = null; - } + } ?> \ No newline at end of file diff --git a/website/css/style.css b/website/css/style.css index 93157a5..0a029b4 100644 --- a/website/css/style.css +++ b/website/css/style.css @@ -3,14 +3,14 @@ } */ /* Make content area fill the entire browser window */ -html, +/* html, .fullscreen { display: flex; height: 100%; margin: 0; padding: 0; width: 100%; -} +} */ /* Center the content in the browser window .container { diff --git a/website/css/theme.css b/website/css/theme.css index e1e6f53..48dfcdf 100644 --- a/website/css/theme.css +++ b/website/css/theme.css @@ -162,6 +162,7 @@ hr{border:0;border-top:1px solid #eee;margin:20px 0} .hover-none:hover{box-shadow:none!important} /* DEFAULT COLORS */ .red-gold,.hover-red-gold{color: #b0834c;background-color: #c42027;} +.red-white,.hover-red-white{color: #fff;background-color: #c42027;} .gold-white,.hover-gold-white{background-color: #b0834c;color: #fff;} .text-white { color: #fff;} /* .label { color: #000; font-size: 8pt;} */ diff --git a/website/db.php b/website/db.php new file mode 100644 index 0000000..8d2fd58 --- /dev/null +++ b/website/db.php @@ -0,0 +1,45 @@ +getServices(); + } elseif ($params["get"] == 'rdv_dates'){ + $html["data"] = $rdv->getRDVDates(); + } elseif ($params["get"] == 'rdv_freehours'){ + $html["data"] = $rdv->getRDVDayFreeTimes($db->securetext($params->{daydate})); + } + } elseif (strpos($params["get"], 'gallery_') === 0){ + + } elseif (strpos($params["get"], 'shop_') === 0){ + + } + + } elseif (isset($params["fn"])){ + if (strpos($params["fn"], 'rdv_') === 0) { + $rdv = new RendezVous($db); + if ($params["fn"] == 'rdv_confirm'){ + + }elseif ($params["fn"] == 'rdv_cancel'){ + + } + } + + + } elseif(isset($params["save"])){ + + } + header('Content-Type: application/json'); + echo json_encode($html); +?> \ No newline at end of file diff --git a/website/img/appicon.png b/website/img/appicon.png new file mode 100644 index 0000000..c8e5131 Binary files /dev/null and b/website/img/appicon.png differ diff --git a/website/index.example.html b/website/index.example.html deleted file mode 100644 index 5a7c656..0000000 --- a/website/index.example.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Hello World - - - - - - - - - - - - - -
-

Hello World!

-
- - - diff --git a/website/index.php b/website/index.php index 8255193..95553c9 100644 --- a/website/index.php +++ b/website/index.php @@ -6,7 +6,7 @@ require("lib/database.php"); $vars = array(); - $vars["page"] = 'home.html'; + $vars["page"] = 'index.html'; if ($_SERVER["REQUEST_URI"] != $cfg["basepath"]){ if (strpos($_SERVER["REQUEST_URI"], ".html?") === false){ $vars["filepath"] = $_SERVER["REQUEST_URI"]; @@ -14,7 +14,7 @@ $vars["filepath"] = substr($_SERVER["REQUEST_URI"],0,strpos($_SERVER["REQUEST_URI"],".html?")).".html"; } - $vars["params"] = getparams(); + //$vars["params"] = getparams(); $vars["page"] = substr($vars["filepath"],strlen($cfg["basepath"])); } $vars["contenttype"] = "text/html"; @@ -63,5 +63,5 @@ $mainsite = $m->render('index.html',$vars); echo $mainsite; - //echo "
".print_r($vars).print_r($_SERVER["REQUEST_URI"]).print_r($vars)."
"; + //echo "
".print_r($vars).print_r($_SERVER["REQUEST_URI"]).print_r($vars)."
" ?> \ No newline at end of file diff --git a/website/js/dataform.js b/website/js/dataform.js new file mode 100644 index 0000000..ec4263f --- /dev/null +++ b/website/js/dataform.js @@ -0,0 +1,276 @@ +let dataform = { + formsaved: function(data){ + var sb = document.getElementById("snackbar"); + sb.className="show green"; + sb.innerHTML = 'Les données ont été sauvegardées!'; + setTimeout(function(){ sb.className = sb.className.replace("show green", ""); }, 3000); + return false; + }, + getformcontent: function(frmid,dataflds){ + var frm = document.getElementById("frm_" + frmid); + var flds = {}; + if (dataflds){ + flds = dataflds; + } + for (var i = 0; i < frm.elements.length; i++) { + var field = frm.elements[i]; + if (((field.getAttribute("name") != 'null') && (field.tagName == "INPUT" || field.tagName == "SELECT" || field.tagName == "TEXTAREA")) && (field.id)){ + // if (field.classList.contains("tagedit")){ + // var fvalue=field.value.trim(); + // var ndata = null; + // if (fvalue != ""){ + // ndata = fvalue.split(","); + // } + // flds[field.getAttribute("name")] = ndata; + // } + if (field.tagName == "TEXTAREA" ){ + if (field.classList.contains("richeditarea")){ + flds[field.dataset.table][field.dataset.column] = tinymce.get(field.id).getContent(); + } else { + flds[field.dataset.table][field.dataset.column] = field.innerHTML; + } + } else if (field.type == "checkbox" ){ + if (field.checked){ + flds[field.dataset.table][field.dataset.column] = "1"; + } else { + flds[field.dataset.table][field.dataset.column] = ""; + } + } + else if (field.tagName == "SELECT" && field.multiple == true){ + var opts = field.selectedOptions; + var vals = []; + for (var o in opts){ + if (opts[o].value){ + vals.push(opts[o].value); + } + } + if (vals.length > 0) { + flds[field.dataset.table][field.dataset.column] = JSON.stringify(vals); + } else { + flds[field.dataset.table][field.dataset.column] = ""; + } + } + else { + console.log("Field",field,field.id, field.value); + flds[field.dataset.table][field.dataset.column] = field.value; + } + } + } + return flds; + }, + cleanform: function(frmname){ + var frm = document.getElementById("frm_" + frmname); + for (var f in frm){ + if (frm[f] && frm[f].id){ + if (frm[f].tagName == 'INPUT'){ + if (frm[f].type == "checkbox"){ + frm[f].checked = false; + } else if (frm[f].classList.contains("datefield")){ + if (frm[f]._flatpickr){ frm[f]._flatpickr.clear(); } + } else if (frm[f].classList.contains("choices__input")){ + if (choice[frmname][frm[f].id]){ + choice[frmname][frm[f].id].removeActiveItems(); + } + } else { + frm[f].value = ""; + } + } + if (frm[f].tagName == 'SELECT'){ + if (frm[f].multiple == true){ + if (frm[f].classList.contains("choices__input")){ + choice[frmname][frm[f].id].removeActiveItems(); + } + } else { + frm[f].value = ""; + } + + } + if (frm[f].tagName == 'TEXTAREA'){ + if (frm[f].classList.contains("richeditarea")){ + tinymce.get(frm[f].id).setContent(""); + } else { + frm[f].innerHTML = ""; + } + } + } + } + return false; + }, + // cleanform2: function(frmname,choices){ + // var frm = document.getElementById("frm_" + frmname); + // for (var f in frm){ + // if (frm[f] && frm[f].id){ + // if (frm[f].tagName == 'INPUT'){ + // if (frm[f].type == "checkbox"){ + // frm[f].checked = false; + // } else if (frm[f].classList.contains("datefield")){ + // if (frm[f]._flatpickr){ frm[f]._flatpickr.clear(); } + // } else if (frm[f].classList.contains("choices__input")){ + // if (choices[frm[f].id]){ + // choices[frm[f].id].removeActiveItems(); + // } + // } else { + // frm[f].value = ""; + // } + // } + // if (frm[f].tagName == 'SELECT'){ + // if (frm[f].multiple == true){ + // if (frm[f].classList.contains("choices__input")){ + // choices[frm[f].id].removeActiveItems(); + // } + // } else { + // frm[f].value = ""; + // } + + // } + // if (frm[f].tagName == 'TEXTAREA'){ + // if (frm[f].classList.contains("richeditarea")){ + // tinymce.get(frm[f].id).setContent(""); + // } else { + // frm[f].innerHTML = ""; + // } + // } + // } + // } + // return false; + // }, + fillform: function(dataclass,choices,data){ + var frm = document.querySelectorAll('.data_'+ dataclass); + //console.log("frmdata",frm); + if (data){ + for (var f in frm){ + + var tblid = null; + //console.log("ID",frm[f].id); + if (frm[f].id){ + tblid = frm[f].id.replace(dataclass + "_",""); + frm[f].dataset.id=data['id']; + } + //console.log(frm[f].id +'=>' +tblid + "=>" +data[tblid]); + if (tblid != null && data[tblid]){ + + if (frm[f].tagName == 'INPUT'){ + if (frm[f].type == "checkbox"){ + if (data[tblid] == "1"){ + frm[f].checked = true; + } else { + frm[f].checked = false; + } + } + else if (frm[f].classList.contains("datefield")){ + frm[f]._flatpickr.setDate(data[tblid]); + } + else if (frm[f].classList.contains("timefield")){ + frm[f].value = timecalc.StringToTime(data[tblid]); + } + else if (frm[f].classList.contains("number")){ + frm[f].value = dataform.setNumber(data[tblid],null); + } + else if (frm[f].classList.contains("currency")){ + frm[f].value = dataform.setNumber(data[tblid],2); + } + else if (frm[f].classList.contains("percent")){ + frm[f].value = dataform.setNumber(data[tblid],2); + } + else { + frm[f].value=data[tblid]; + } + } + if (frm[f].tagName == 'SELECT'){ + if (frm[f].multiple == true){ + + choices[frm[f].id].set(JSON.parse(data[tblid])); + } else { + frm[f].value=data[tblid]; + } + } + if (frm[f].tagName == "TEXTAREA"){ + //console.log("Set TextArea: " + frm[f].id + " => "+ data[tblid]); + if (frm[f].classList.contains("richeditarea")){ + + tinymce.get(frm[f].id).setContent(data[tblid]); + } else { + frm[f].value = data[tblid]; + } + } + } + } + } + }, + setNumber(numdata,decimals){ + console.log("Number in ",numdata); + if (numdata == null || numdata == ''){ + return ""; + } + if (decimals){ + numdata = parseFloat(numdata).toFixed(decimals).toString(); + } + numdata.toString().replace(/./,','); + console.log("Number out ",numdata); + return numdata; + }, + fillselectlist: function(obj,listdata,vidcol,vvalcol){ + var sellist = []; + let csel = obj.value; + //console.log(obj); + //console.log("selectdata",listdata); + + // for (var d in listdata){ + // console.log(d); + // } + // console.log("datasize",listdata.length); + if (listdata.length > 0){ + for (var i=0;i'); + } + }, + setValue: function(obj,newvalue){ + if (obj.tagName == 'INPUT' || obj.tagName == 'SELECT'){ + if (obj.type == 'checkbox' || obj.type == 'radio'){ + obj.checked = true; + }else { + obj.value=newvalue; + } + } + if (obj.tagName == 'TEXTAREA'){ + obj.innerHTML = newvalue; + } + dataform.savefield(obj); + }, + savefield: function(obj){ + //if (obj.tagName == 'TextArea') + fdata = obj.dataset; + //fdata["save"] = "field"; + //fdata["schemata"] = schemata; + if (obj.tagName == 'INPUT' || obj.tagName == 'SELECT' || obj.tagName == 'TEXTAREA'){ + if (obj.type == 'checkbox' || obj.type == 'radio'){ + if (obj.checked == true){ + fdata["value"] = 1; + } else { + fdata["value"] = null; + } + }else { + fdata["value"] = obj.value; + } + } + db.exec("UPDATE "+ fdata["table"]+" SET "+fdata["column"]+"='"+ fdata["value"] + "' WHERE id='" + fdata["id"]+ "';"); + return false; + }, + cleanfield: function(objid){ + document.getElementById(objid).value=''; + }, + } \ No newline at end of file diff --git a/website/js/gallery.js b/website/js/gallery.js index e69de29..fb3bd67 100644 --- a/website/js/gallery.js +++ b/website/js/gallery.js @@ -0,0 +1,7 @@ +function initpage(){ + +} + +let gallery = { + +} \ No newline at end of file diff --git a/website/js/index.js b/website/js/index.js new file mode 100644 index 0000000..528feae --- /dev/null +++ b/website/js/index.js @@ -0,0 +1,37 @@ +if ('serviceWorker' in navigator) { + navigator.serviceWorker + .register('./js/sw.js'); +} + +let deferredPrompt; +const addBtn = document.querySelector('.add-button'); +addBtn.style.display = 'none'; + +window.addEventListener('beforeinstallprompt', (e) => { +// Prevent Chrome 67 and earlier from automatically showing the prompt +e.preventDefault(); +// Stash the event so it can be triggered later. +deferredPrompt = e; +// Update UI to notify the user they can add to home screen +addBtn.style.display = 'block'; + +addBtn.addEventListener('click', (e) => { + // hide our user interface that shows our A2HS button + addBtn.style.display = 'none'; + // Show the prompt + deferredPrompt.prompt(); + // Wait for the user to respond to the prompt + deferredPrompt.userChoice.then((choiceResult) => { + if (choiceResult.outcome === 'accepted') { + console.log('User accepted the A2HS prompt'); + } else { + console.log('User dismissed the A2HS prompt'); + } + deferredPrompt = null; + }); +}); +}); + +function initpage(){ + +} \ No newline at end of file diff --git a/website/js/myapp.js b/website/js/myapp.js new file mode 100644 index 0000000..4eb5749 --- /dev/null +++ b/website/js/myapp.js @@ -0,0 +1,113 @@ +// function togglemenu(){ +// var mnu = document.getElementById("mobilemenu"); +// if (mnu.style.display == 'none'){ +// mnu.style.display = 'block'; +// } else { +// mnu.style.display = 'none'; +// } +// } + +let myapp={ + loadpanel: function(idpanel){ + return new Promise( + function(resolve, reject){ + if (document.getElementById("pnl_" + idpanel).innerHTML == ''){ + var pnldoc = usersystem.readAppFile('panels/' + idpanel + '.html'); + if (pnldoc == ""){ + reject('panels/' + idpanel + '.html' + " data is empty"); + }else { + document.getElementById("pnl_" + idpanel).insertAdjacentHTML('afterbegin', pnldoc); + if (eval("typeof "+ idpanel) == "object"){ + eval(`${idpanel}.init();`); + } + resolve(true); + } + } else { + resolve(true); + } + }); + }, + viewpanel: function( idpanel){ + myapp.loadpanel(idpanel).then(result => { + if (result){ + let panels = document.getElementsByClassName("panel"); + for (let i=0;i { + document.getElementById("dlg" + dlgname).style.display = 'block'; + //}); + + }, + closeDialog: function(dlgname){ + document.getElementById("dlg" + dlgname).style.display = 'none'; + }, + confirm(title,message,strbtnok,strbtncancel,action){ + document.getElementById("dlgconfirm_title").innerHTML = title; + document.getElementById("dlgconfirm_text").innerHTML = message; + document.getElementById("dlgconfirm_btnok").innerHTML = strbtnok; + document.getElementById("dlgconfirm_btncancel").innerHTML = strbtncancel; + document.getElementById("dlgconfirm_btnok").setAttribute("onclick","document.getElementById('dlgconfirm').style.display='none';" + action); + document.getElementById("dlgconfirm").style.display = 'block'; + }, + message: function(title,message){ + document.getElementById('dlgmessage_title').innerHTML=title; + document.getElementById('dlgmessage_text').innerHTML=message; + document.getElementById('dlgmessage').style.display='block'; + return false; + } +} + +document.addEventListener("DOMContentLoaded", function() { + initpage(); +}); + +// function hideAddressBar(){ +// if(document.documentElement.scrollHeight { + rendezvous.tbldates.setData(data.data); + myapp.viewpanel('rdvdate'); + }); + } + }, + viewHours: function(){ + let sel = rendezvous.tbldates.getSelectedData(); + if (sel[0]){ + postData({"get":"rdv_freehours"}).then(data => { + rendezvous.tblhours.setData(data.data); + }); + myapp.viewpanel('rdvtime'); + } + }, + viewClientData: function(){ + let sel = rendezvous.tblhours.getSelectedData(); + if (sel[0]){ + myapp.viewpanel('rdvclientdata'); + } + }, + viewConfirmation: function(){ + document.getElementById("rendezvous_clientname").value; + if () + myapp.viewpanel('rdvconfirm'); + }, + viewSended: function(){ + myapp.viewpanel('rdvsended'); + }, + confirm: function(){ + myapp.viewpanel('rdvsended'); + }, + cancel: function(){ + myapp.viewpanel('rdvsended'); + }, + getServiceData: function(){ + postData({"get":"rdv_services"}).then(data => { + console.log(data); + rendezvous.tblservices.setData(data.data); + }); + }, + getHourData: function(){ - } + }, } \ No newline at end of file diff --git a/website/js/request.js b/website/js/request.js new file mode 100644 index 0000000..a168798 --- /dev/null +++ b/website/js/request.js @@ -0,0 +1,19 @@ +let api = location.origin + '/oldbell_lu/'; +console.log(api); +async function postData(data = {}) { + // Default options are marked with * + const response = await fetch(api + 'db.php', { + method: 'POST', + mode: 'same-origin', + cache: 'no-cache', + credentials: 'same-origin', + headers: { + 'Content-Type': 'application/json' + + }, + redirect: 'follow', + referrerPolicy: 'strict-origin', + body: JSON.stringify(data) + }); + return response.json(); +} \ No newline at end of file diff --git a/website/js/site.js b/website/js/site.js deleted file mode 100644 index d3b454a..0000000 --- a/website/js/site.js +++ /dev/null @@ -1,43 +0,0 @@ -// function togglemenu(){ -// var mnu = document.getElementById("mobilemenu"); -// if (mnu.style.display == 'none'){ -// mnu.style.display = 'block'; -// } else { -// mnu.style.display = 'none'; -// } -// } - -function hideAddressBar(){ - if(document.documentElement.scrollHeight { - 'use strict'; - - if ('serviceWorker' in navigator) { - navigator.serviceWorker - .register('./js/sw.js'); - } -} - -function dropdown(drdid){ - var x = document.getElementById(drdid); - if (x.className.indexOf("show") == -1) { - x.className += " show"; - } else { - x.className = x.className.replace(" show", ""); - } -} - -function dropup(drdid){ - var x = document.getElementById(drdid); - if (x.className.indexOf("show") == -1) { - x.className += " show"; - } else { - x.className = x.className.replace(" show", ""); - } -} \ No newline at end of file diff --git a/website/js/sw.js b/website/js/sw.js index 872158d..8b2bb43 100644 --- a/website/js/sw.js +++ b/website/js/sw.js @@ -1,14 +1,6 @@ var cacheName = 'oldbell-pwa'; var filesToCache = [ - '/oldbell_lu/', - '/oldbell_lu/index.html', - '/oldbell_lu/css/theme.css', - '/oldbell_lu/css/icons.css', - '/oldbell_lu/css/fonts/siteicons.svg', - '/oldbell_lu/css/fonts/siteicons.ttf', - '/oldbell_lu/css/fonts/siteicons.woff', - '/oldbell_lu/css/theme.css', - '/oldbell_lu/js/site.js' + '/oldbell_lu/index.html' ]; /* Start the service worker and cache all of the app's content */ diff --git a/website/js/vendor/photoswipe/default-skin/default-skin.css b/website/js/vendor/photoswipe/default-skin/default-skin.css new file mode 100644 index 0000000..c961632 --- /dev/null +++ b/website/js/vendor/photoswipe/default-skin/default-skin.css @@ -0,0 +1,482 @@ +/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */ +/* + + Contents: + + 1. Buttons + 2. Share modal and links + 3. Index indicator ("1 of X" counter) + 4. Caption + 5. Loading indicator + 6. Additional styles (root element, top bar, idle state, hidden state, etc.) + +*/ +/* + + 1. Buttons + + */ +/* - - + - + + diff --git a/website/tmpl/pages/rendezvous.html.mustache b/website/tmpl/pages/rendezvous.html.mustache index 7371eea..933c51c 100644 --- a/website/tmpl/pages/rendezvous.html.mustache +++ b/website/tmpl/pages/rendezvous.html.mustache @@ -1,66 +1,151 @@ -
-
-
retour
-
- Rendez-vous -
+
+
+
+ +
Home +
+
+ Choix du Service
Rendez-Vous
+
- -
-
-
-
Choix du Produit / Service
-
+
+
+ + + +