From: Kilian Saffran Date: Fri, 23 Oct 2020 05:34:33 +0000 (+0200) Subject: v20201022 X-Git-Tag: 1.0.15~6 X-Git-Url: http://cloud.dks.lu/git/?a=commitdiff_plain;h=5f189d53ac359acda533790775372d6a9e26496d;p=pot_lu.git v20201022 --- diff --git a/.vscode/settings.json b/.vscode/settings.json index 62e0ec42..d4477bc4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,7 +2,7 @@ "perlSyntax.includePaths": [ "C:/Users/kilian/Workspace/pot_lu/app/lib/perl5","C:/Users/kilian/Workspace/pot_lu/app/lib","C:/Users/kilian/Workspace/pot_lu/website/api/lib" ], -"es6-css-minify.minifyOnSave": "yes", +"es6-css-minify.minifyOnSave": "no", "git.ignoreLimitWarning": true, "tidyHtml.formatOnSave": false, "tidyHtml.optionsTidy": { diff --git a/app/lib/dksconfig.pm b/app/lib/dksconfig.pm index 2086bf98..bc0e4a4d 100644 --- a/app/lib/dksconfig.pm +++ b/app/lib/dksconfig.pm @@ -11,8 +11,8 @@ our @EXPORT_OK = qw($sitecfg); our $sitecfg ={ cookiename => 'potlu', dbtype => 'PgPP', - dsn => 'DBI:PgPP:dbname=potlu2_db;host=localhost', - #dsn => 'DBI:PgPP:dbname=potlu2_db;host=sql12.your-server.de', + #dsn => 'DBI:PgPP:dbname=potlu2_db;host=localhost', + dsn => 'DBI:PgPP:dbname=potlu2_db;host=sql12.your-server.de', dbuser => 'potlu2_user', dbpassword => 'dMY8xGB6cBLzrDGE', page => 'index.tt', diff --git a/app/lib/dksdb.pm b/app/lib/dksdb.pm index 9e9317dd..60cf28bf 100644 --- a/app/lib/dksdb.pm +++ b/app/lib/dksdb.pm @@ -20,7 +20,7 @@ sub new { my $class = shift; my $p = shift; my $self = bless {}, $class; - $self->{debug} = 1; + $self->{debug} = 0; $self->{dbh} = DBI->connect($p->{dsn},$p->{dbuser},$p->{dbpassword},{PrintError=>1,RaiseError=>1,AutoCommit=>1}) or return "query Connection Error!".$!; return $self; } diff --git a/app/static/js/dataform.js b/app/static/js/dataform.js index 75a7a22c..2251baef 100644 --- a/app/static/js/dataform.js +++ b/app/static/js/dataform.js @@ -73,20 +73,9 @@ getformcontent: function(frmid,dataflds){ } else if (field.tagName == "SELECT" && field.multiple == true){ flds[field.getAttribute("name")] = dataflds[field.getAttribute("id")].selected(); - // var opts = field.value; - // var vals = []; - // for (var o in opts){ - // if (opts[o].value){ - // vals.push(opts[o].value); - // } - // } - // if (vals.length > 0) { - // flds[field.getAttribute("name")] = JSON.stringify(vals); - // } else { - // flds[field.getAttribute("name")] = ""; - // } - } else if (field.tagName == "SELECT"){ - flds[field.getAttribute("name")] = dataflds[field.getAttribute("id")].selected(); + } + else if (field.tagName == "SELECT"){ + flds[field.getAttribute("name")] = dataflds[field.getAttribute("id")].selected(); } else { flds[field.getAttribute("name")] = field.value; diff --git a/app/static/js/dataform.min.js b/app/static/js/dataform.min.js index ce3ee0fa..5516ad33 100644 --- a/app/static/js/dataform.min.js +++ b/app/static/js/dataform.min.js @@ -1 +1 @@ -let dataform={saveform:function(frmid,aftercallback,clientschema){var flds=form.getformcontent(frmid,null);return flds.fn="saveform",flds.schemata=clientschema,flds.table=frmid,null==clientschema&&(flds.schemata=schemata),delete flds.null,postData("db.cgi",flds).then(data=>{aftercallback?(aftercallback(data.result),form.formsaved({})):form.formsaved(data.result)}),!1},saveformdata:function(flds,aftercallback,clientschema){return flds.fn="saveform",flds.schemata=clientschema,null==clientschema&&(flds.schemata=schemata),delete flds.null,postData("db.cgi",flds).then(data=>{aftercallback?(aftercallback(data.result),form.formsaved({})):form.formsaved(data.result)}),!1},formsaved:function(data){var sb=document.getElementById("snackbar");return sb.className="show green",sb.innerHTML="Les données ont été sauvegardées!",setTimeout((function(){sb.className=sb.className.replace("show green","")}),3e3),!1},getformcontent:function(frmid,dataflds){for(var frm=document.getElementById("frm_"+frmid),flds={},i=0;i{callback&&callback(data)}),!1},saveschemafield:function(obj,schema){return fdata=obj.dataset,fdata.save="field",fdata.schemata=schema,"INPUT"!=obj.tagName&&"SELECT"!=obj.tagName&&"TEXTAREA"!=obj.tagName||("checkbox"==obj.type||"radio"==obj.type?1==obj.checked?fdata.value=1:fdata.value=null:fdata.value=obj.value),postData("db.cgi",fdata).then(data=>{}),!1},cleanfield:function(objid){document.getElementById(objid).value=""}}; \ No newline at end of file +let dataform={saveform:function(frmid,aftercallback,clientschema){var flds=form.getformcontent(frmid,null);return flds.fn="saveform",flds.schemata=clientschema,flds.table=frmid,null==clientschema&&(flds.schemata=schemata),delete flds.null,postData("db.cgi",flds).then(data=>{aftercallback?(aftercallback(data.result),form.formsaved({})):form.formsaved(data.result)}),!1},saveformdata:function(flds,aftercallback,clientschema){return flds.fn="saveform",flds.schemata=clientschema,null==clientschema&&(flds.schemata=schemata),delete flds.null,postData("db.cgi",flds).then(data=>{aftercallback?(aftercallback(data.result),form.formsaved({})):form.formsaved(data.result)}),!1},formsaved:function(data){var sb=document.getElementById("snackbar");return sb.className="show green",sb.innerHTML="Les données ont été sauvegardées!",setTimeout((function(){sb.className=sb.className.replace("show green","")}),3e3),!1},getformcontent:function(frmid,dataflds){for(var frm=document.getElementById("frm_"+frmid),flds={},i=0;i{callback&&callback(data)}),!1},saveschemafield:function(obj,schema){return fdata=obj.dataset,fdata.save="field",fdata.schemata=schema,"INPUT"!=obj.tagName&&"SELECT"!=obj.tagName&&"TEXTAREA"!=obj.tagName||("checkbox"==obj.type||"radio"==obj.type?1==obj.checked?fdata.value=1:fdata.value=null:fdata.value=obj.value),postData("db.cgi",fdata).then(data=>{}),!1},cleanfield:function(objid){document.getElementById(objid).value=""}}; \ No newline at end of file diff --git a/app/tmpl/index.tt b/app/tmpl/index.tt index c7283be4..b4daa1cd 100644 --- a/app/tmpl/index.tt +++ b/app/tmpl/index.tt @@ -1,4 +1,4 @@ -[% appversion = '0.9.13.1' %] +[% appversion = '0.9.14' %] [% minify = '' %] diff --git a/app/tmpl/module/staff/pnl_basedata.tt b/app/tmpl/module/staff/pnl_basedata.tt index 781374b2..c2a662a3 100644 --- a/app/tmpl/module/staff/pnl_basedata.tt +++ b/app/tmpl/module/staff/pnl_basedata.tt @@ -51,8 +51,8 @@
- - diff --git a/app/tmpl/module/staff/staff.js b/app/tmpl/module/staff/staff.js index 373dbf79..6a2a8f80 100644 --- a/app/tmpl/module/staff/staff.js +++ b/app/tmpl/module/staff/staff.js @@ -14,7 +14,7 @@ let staff ={ current_id: null, current_view: 'basedata', staff_defaultgroup:null, - choices:{"id_staffgroup":null,"addstaff_id_staffgroup":null,"istimetrackerenabled":null}, + choices:{"id_staffgroup":null,"addstaff_id_staffgroup":null,"istimetrackenabled":null}, initform: function(){ flatpickr("#birthdate",{altInput: true, altFormat: "d.m.Y", @@ -47,10 +47,13 @@ let staff ={ select: "#addstaff_id_staffgroup", showSearch: false, }); - staff.choices["istimetrackerenabled"] = new SlimSelect({ - select: "#istimetrackerenabled", + staff.choices["istimetrackenabled"] = new SlimSelect({ + select: "#istimetrackenabled", showSearch: false, - afterClose: function(){dataform.savefield(document.getElementById('istimetrackerenabled'));} + afterClose: function(){ + //console.log("set timetrack"); + dataform.savefield(document.getElementById('istimetrackenabled'),null); + } }); /* @preserve[% IF session.usergroup == 'teamleader' %]*/ let stflds = document.getElementsByClassName("data_staff"); diff --git a/app/tmpl/module/staff/staff.min.js b/app/tmpl/module/staff/staff.min.js index 116135aa..ecad7169 100644 --- a/app/tmpl/module/staff/staff.min.js +++ b/app/tmpl/module/staff/staff.min.js @@ -1,22 +1,9 @@ -function initpage(){schemata=app.getCurrentSchemata(),staff.inittable(),staffcontract.inittable(),staffperiods.inittable(),staffperiodweeks.inittable()}let staff={tbl:null,tblperiodbase:null,current_user:null,current_id:null,current_view:"basedata",staff_defaultgroup:null,choices:{id_staffgroup:null,addstaff_id_staffgroup:null,istimetrackerenabled:null},initform:function(){flatpickr("#birthdate",{altInput:!0,altFormat:"d.m.Y",dateFormat:"Y-m-d",locale:"fr",onClose:function(t,a,e){dataform.savefield(document.getElementById("birthdate"),null)}}),flatpickr("#addstaff_startdate",{altInput:!0,altFormat:"d.m.Y",dateFormat:"Y-m-d",locale:"fr"}),flatpickr("#addstaff_enddate",{altInput:!0,altFormat:"d.m.Y",dateFormat:"Y-m-d",locale:"fr"}),staff.choices["id_staffgroup"]=new SlimSelect({select:"#id_staffgroup",showSearch:!1, +function initpage(){schemata=app.getCurrentSchemata(),staff.inittable(),staffcontract.inittable(),staffperiods.inittable(),staffperiodweeks.inittable()}let staff={tbl:null,tblperiodbase:null,current_user:null,current_id:null,current_view:"basedata",staff_defaultgroup:null,choices:{id_staffgroup:null,addstaff_id_staffgroup:null,istimetrackenabled:null},initform:function(){flatpickr("#birthdate",{altInput:!0,altFormat:"d.m.Y",dateFormat:"Y-m-d",locale:"fr",onClose:function(selectedDates,dateStr,instance){dataform.savefield(document.getElementById("birthdate"),null)}}),flatpickr("#addstaff_startdate",{altInput:!0,altFormat:"d.m.Y",dateFormat:"Y-m-d",locale:"fr"}),flatpickr("#addstaff_enddate",{altInput:!0,altFormat:"d.m.Y",dateFormat:"Y-m-d",locale:"fr"}),staff.choices.id_staffgroup=new SlimSelect({select:"#id_staffgroup",showSearch:!1, /* @preserve[% IF session.usergroup == 'teamleader' %]*/ disabled:!0, /* @preserve[% ELSE %]*/ afterClose:function(){dataform.savefield(document.getElementById("id_staffgroup"),staff.gettbldata)} -/* @preserve[% END %]*/}),staff.choices["addstaff_id_staffgroup"]=new SlimSelect({select:"#addstaff_id_staffgroup",showSearch:!1}),staff.choices["istimetrackerenabled"]=new SlimSelect({select:"#istimetrackerenabled",showSearch:!1,afterClose:function(){dataform.savefield(document.getElementById("istimetrackerenabled"))}}) - -;/* @preserve[% IF session.usergroup == 'teamleader' %]*/ -let t=document.getElementsByClassName("data_staff") -for(var a in t)t[a]._flatpickr?t[a]._flatpickr._input.setAttribute("disabled","disabled"):t[a].disabled=!0 - -;/* @preserve[% END %]*/staff.getstaffgroups()},inittable:function(){staff.initform(),staff.tbl=new Tabulator("#tbl_staff",{height:"calc(100vh - 56px)",layout:"fitDataFill",selectable:1,groupBy:["groupname"],groupStartOpen:[!0],groupHeader:[function(t,a,e){return t||""}],rowClick:function(t,a){staff.edit()},rowContext:function(t,a){t.preventDefault()},columns:[{title:"Départment",field:"groupname",visible:!1},{title:"Nom",field:"surname",resizable:!1},{title:"Prénom",field:"prename",resizable:!1}]}),staff.gettbldata()},gettbldata:function(t){let a=staff.tbl.getSelectedData() -postData("db.cgi",{get:"stafflist",schemata:schemata}).then(t=>{staff.tbl.setData(t.result.sqldata).then(function(){a[0]&&staff.tbl.selectRow(a[0]["id"])})}).catch(t=>{})},add:function(){document.getElementById("dlg_addstaff_infomsg").innerHTML="",dataform.cleanform2("addstaff",staff.choices),document.getElementById("addstaff_weekhours").value="40:00",document.getElementById("addstaff_weekdays").value="6",document.getElementById("addstaff_startdate")._flatpickr.setDate(moment(new Date).format("YYYY-MM-DD")),staff.choices["addstaff_id_staffgroup"].set(staff.staff_defaultgroup),app.viewdialog("addstaff")},savenew:function(){let t=dataform.getformcontent("addstaff",staff.choices) -for(let e in t){var a=e.replace("addstaff_","") -t[a]=t[e],delete t[e]}if(t["schemata"]=schemata,t["fn"]="add_staff",""==t["startdate"]||""==t["startdate"]||"weekhours"==t["weekdays"]||""==t["weekhours"]||""==t["id_staffgroup"])return document.getElementById("dlg_addstaff_infomsg").innerHTML='
les champs "date début","heures/semaine","jours/semaine" et "département" sont requis!
',!1 -showdataloaddlg("",'
Attendez s.v.p.!
'),postData("db.cgi",t).then(t=>{document.getElementById("dlg_addstaff").style.display="none",staff.current_view="basedata",staff.gettbldata(),staff.setview(staff.current_view),closedataloaddlg()}).catch(t=>{document.getElementById("dlg_addstaff").style.display="none",closedataloaddlg()})},edit:function(){let t=staff.tbl.getSelectedData() -t[0]?(staff.current_id=t[0].id,dataform.cleanform2("staff",staff.choices),postData("db.cgi",{get:"staff",schemata:schemata,id:t[0].id}).then(t=>{dataform.fillformbydataclass2("staff",staff.choices,t.result.data,"dataform.savefield(this,null);"),staffcontract.gettbldata(),staffperiods.gettbldata(),staff.setview(staff.current_view)})):app.viewpanel("nodata")},remove:function(){let t=staff.tbl.getSelectedData() -if(t[0]){var a={fn:"del_staff"} -a["id"]=t[0].id,a["schemata"]=schemata,showinfodlg("Supprimer","Êtes vous sûre de supprimer l'employé(e) sélectionnée?",staff.removedata,a,'Supprimer','Annuler')}},removedata:function(t){postData("db.cgi",t).then(t=>{let a=staff.tbl.getSelectedData() -a[0]&&staff.tbl.deselectRow(a["id"]),staff.gettbldata()})},viewtable:function(){return staff.gettbldata(),!1},save:function(){let t=dataform.getformcontent("staff") -return t["ident"]="id",t["table"]="staff",dataform.saveformdata(t,staff.aftersavecallback,schemata),!1},aftersavecallback:function(t){return t&&t.id&&(staff.current_id=t.id,document.getElementById("section_staffcontract").style.display="block"),!1},getstaffgroups:function(){postData("db.cgi",{get:"staffgroups",schemata:schemata}).then(t=>{staff.staff_defaultgroup=t.result.sqldata[0].id,dataform.fillselectlist(staff.choices["addstaff_id_staffgroup"],t.result.sqldata,"id","groupname"),dataform.fillselectlist(staff.choices["id_staffgroup"],t.result.sqldata,"id","groupname")})},fillstaffgroups:function(t){dataform.fillselectlist(staff.choices["id_staffgroup"],t.sqldata,"id","groupname")},setview:function(t){let a=staff.tbl.getSelectedData() -a[0]&&(staff.current_view=t,"periods"==t&&staffperiods.gettbldata(),app.viewpanel(t))}} +/* @preserve[% END %]*/}),staff.choices.addstaff_id_staffgroup=new SlimSelect({select:"#addstaff_id_staffgroup",showSearch:!1}),staff.choices.istimetrackenabled=new SlimSelect({select:"#istimetrackenabled",showSearch:!1,afterClose:function(){console.log("set timetrack"),dataform.savefield(document.getElementById("istimetrackenabled"))}}); +/* @preserve[% IF session.usergroup == 'teamleader' %]*/ +let stflds=document.getElementsByClassName("data_staff");for(var f in stflds)stflds[f]._flatpickr?stflds[f]._flatpickr._input.setAttribute("disabled","disabled"):stflds[f].disabled=!0; +/* @preserve[% END %]*/staff.getstaffgroups()},inittable:function(){staff.initform(),staff.tbl=new Tabulator("#tbl_staff",{height:"calc(100vh - 56px)",layout:"fitDataFill",selectable:1,groupBy:["groupname"],groupStartOpen:[!0],groupHeader:[function(value,count,data){return value||""}],rowClick:function(e,row){staff.edit()},rowContext:function(e,row){e.preventDefault()},columns:[{title:"Départment",field:"groupname",visible:!1},{title:"Nom",field:"surname",resizable:!1},{title:"Prénom",field:"prename",resizable:!1}]}),staff.gettbldata()},gettbldata:function(id){let selectedData=staff.tbl.getSelectedData();postData("db.cgi",{get:"stafflist",schemata:schemata}).then(data=>{staff.tbl.setData(data.result.sqldata).then((function(){selectedData[0]&&staff.tbl.selectRow(selectedData[0].id)}))}).catch(e=>{console.log(e)})},add:function(){document.getElementById("dlg_addstaff_infomsg").innerHTML="",dataform.cleanform2("addstaff",staff.choices),document.getElementById("addstaff_weekhours").value="40:00",document.getElementById("addstaff_weekdays").value="6",document.getElementById("addstaff_startdate")._flatpickr.setDate(moment(new Date).format("YYYY-MM-DD")),staff.choices.addstaff_id_staffgroup.set(staff.staff_defaultgroup),app.viewdialog("addstaff")},savenew:function(){let flds=dataform.getformcontent("addstaff",staff.choices);for(let i in flds){var x;flds[i.replace("addstaff_","")]=flds[i],delete flds[i]}if(flds.schemata=schemata,flds.fn="add_staff",""==flds.startdate||""==flds.startdate||"weekhours"==flds.weekdays||""==flds.weekhours||""==flds.id_staffgroup)return document.getElementById("dlg_addstaff_infomsg").innerHTML='
les champs "date début","heures/semaine","jours/semaine" et "département" sont requis!
',!1;showdataloaddlg("",'
Attendez s.v.p.!
'),postData("db.cgi",flds).then(data=>{document.getElementById("dlg_addstaff").style.display="none",staff.current_view="basedata",staff.gettbldata(),staff.setview(staff.current_view),closedataloaddlg()}).catch(e=>{document.getElementById("dlg_addstaff").style.display="none",closedataloaddlg()})},edit:function(){let udata=staff.tbl.getSelectedData();udata[0]?(staff.current_id=udata[0].id,dataform.cleanform2("staff",staff.choices),postData("db.cgi",{get:"staff",schemata:schemata,id:udata[0].id}).then(data=>{dataform.fillformbydataclass2("staff",staff.choices,data.result.data,"dataform.savefield(this,null);"),staffcontract.gettbldata(),staffperiods.gettbldata(),staff.setview(staff.current_view)})):app.viewpanel("nodata")},remove:function(){let udata=staff.tbl.getSelectedData();if(udata[0]){var flds={fn:"del_staff"};flds.id=udata[0].id,flds.schemata=schemata,showinfodlg("Supprimer","Êtes vous sûre de supprimer l'employé(e) sélectionnée?",staff.removedata,flds,'Supprimer','Annuler')}},removedata:function(data){postData("db.cgi",data).then(remdata=>{let x=staff.tbl.getSelectedData();x[0]&&staff.tbl.deselectRow(x.id),staff.gettbldata()})},viewtable:function(){return staff.gettbldata(),!1},save:function(){let fdata=dataform.getformcontent("staff");return fdata.ident="id",fdata.table="staff",dataform.saveformdata(fdata,staff.aftersavecallback,schemata),!1},aftersavecallback:function(data){return data&&data.id&&(staff.current_id=data.id,document.getElementById("section_staffcontract").style.display="block"),!1},getstaffgroups:function(){postData("db.cgi",{get:"staffgroups",schemata:schemata}).then(data=>{staff.staff_defaultgroup=data.result.sqldata[0].id,dataform.fillselectlist(staff.choices.addstaff_id_staffgroup,data.result.sqldata,"id","groupname"),dataform.fillselectlist(staff.choices.id_staffgroup,data.result.sqldata,"id","groupname")})},fillstaffgroups:function(data){dataform.fillselectlist(staff.choices.id_staffgroup,data.sqldata,"id","groupname")},setview:function(viewname){let sel;staff.tbl.getSelectedData()[0]&&(staff.current_view=viewname,"periods"==viewname&&staffperiods.gettbldata(),app.viewpanel(viewname))}}; \ No newline at end of file diff --git a/app/tmpl/module/workplans.tt b/app/tmpl/module/workplans.tt index 6b8e56de..baa7a88c 100644 --- a/app/tmpl/module/workplans.tt +++ b/app/tmpl/module/workplans.tt @@ -3,9 +3,9 @@ retour
Modèles hebdomaires
- - - + + +