From 715fbc69e1fd236e998408e91e24be6762bd6a46 Mon Sep 17 00:00:00 2001 From: "kilian (dks-laptop)" Date: Mon, 30 Dec 2019 08:10:34 +0100 Subject: [PATCH] v20191229 --- backoffice/api/index.cgi | 4 + backoffice/api/lib/dksconfig.pm | 11 +- backoffice/api/lib/sendemail_new.pm | 151 ++++++++++++++++++ backoffice/data/.htaccess | 10 +- backoffice/data/company/.htaccess | 5 - backoffice/data/mail/block/greeting.tt | 4 + backoffice/data/mail/block/signature.tt | 5 + .../data/mail/body/user_forgotpasswd.tt | 5 + .../data/mail/body/user_registration.tt | 8 + backoffice/data/mail/mail.tt | 23 +++ backoffice/index.cgi | 8 +- .../tmpl/module/staff/widgets/staff/staff.js | 2 +- backoffice/tmpl/skeleton/login.tt | 2 + .../tmpl/skeleton/login/accountreset.tt | 37 +++++ .../tmpl/skeleton/login/validationcode.tt | 4 +- dev/diff_files.sh | 4 +- dev/sourcefiles.local.txt | 28 ++-- dev/sourcefiles.remote.txt | 142 +++++++++------- 18 files changed, 364 insertions(+), 89 deletions(-) create mode 100644 backoffice/api/lib/sendemail_new.pm delete mode 100644 backoffice/data/company/.htaccess create mode 100644 backoffice/data/mail/block/greeting.tt create mode 100644 backoffice/data/mail/block/signature.tt create mode 100644 backoffice/data/mail/body/user_forgotpasswd.tt create mode 100644 backoffice/data/mail/body/user_registration.tt create mode 100644 backoffice/data/mail/mail.tt create mode 100644 backoffice/tmpl/skeleton/login/accountreset.tt diff --git a/backoffice/api/index.cgi b/backoffice/api/index.cgi index e1940341..2d926f82 100755 --- a/backoffice/api/index.cgi +++ b/backoffice/api/index.cgi @@ -195,6 +195,10 @@ select json_array_elements_text(schemaaccess) as schemaaccess from users where } $html->{result} = $db->dbquerysorted($sql); } + if ($p->{fn} eq "sendemail"){ + my $eml = sendemailnew->new(); + $eml->gentemplate($p->{tmpl},$sess->{id}); + } } } diff --git a/backoffice/api/lib/dksconfig.pm b/backoffice/api/lib/dksconfig.pm index 3adb907e..e646d2b7 100644 --- a/backoffice/api/lib/dksconfig.pm +++ b/backoffice/api/lib/dksconfig.pm @@ -12,13 +12,14 @@ our $sitecfg ={ cookiename => 'potlu', dbtype => 'PgPP', dsn => 'DBI:PgPP:dbname=potlu_db;host=DKS-LAPTOP.fritz.box', - #dsn => 'DBI:PgPP:dbname=solarch_db;host=sql629.your-server.de', + #dsn => 'DBI:PgPP:dbname=potlu_db;host=sql629.your-server.de', dbuser => 'potlu_user', dbpassword => 'r2btTTRfuJz4whez', page => 'index.tt', pagename => 'index', basepath => substr((exists($ENV{"SCRIPT_FILENAME"})?dirname($ENV{"SCRIPT_FILENAME"}):dirname($0)),length($ENV{"DOCUMENT_ROOT"})), datapath => substr((exists($ENV{"SCRIPT_FILENAME"})?dirname($ENV{"SCRIPT_FILENAME"}):dirname($0)),length($ENV{"DOCUMENT_ROOT"})).'/data/', + apidatapath => substr((exists($ENV{"SCRIPT_FILENAME"})?dirname(dirname($ENV{"SCRIPT_FILENAME"})):dirname(dirname($0))),length($ENV{"DOCUMENT_ROOT"})).'/data/', docroot => $ENV{"DOCUMENT_ROOT"}, registration_enabled => '0', default_group => 'users', @@ -28,7 +29,13 @@ our $sitecfg ={ port => "587", user => 'ksaffran@dks.lu', password => "FB1ia1ka", - from => 'support@dks.lu' + from => 'support@dks.lu', + templates => { + user_registration => "Confirmation requis pour votre création de compte sur pot.lu", + user_forgotpasswd => "Nouveau mot de passe pour le site pot.lu", + user_verification => "Validation de votre Email pour le site pot.lu", + user_newpassword => "coordonnées d'accès de votre compte sur pot.lu" + } } }; diff --git a/backoffice/api/lib/sendemail_new.pm b/backoffice/api/lib/sendemail_new.pm new file mode 100644 index 00000000..e0bb1e67 --- /dev/null +++ b/backoffice/api/lib/sendemail_new.pm @@ -0,0 +1,151 @@ +package sendemail_new; + +use strict; +use lib ('./lib/perl5'); +use lib ('./lib'); +use lib ('./'); +use Data::Dumper; +use Template; +use CGI; +use File::Basename qw/dirname basename/; +use dksdb; + +use dksconfig qw($sitecfg); + +sub new { + my $class = shift; + my $self = bless {}, $class; + $self->{server} = $sitecfg->{mail}->{server}; + $self->{port} = $sitecfg->{mail}->{port}; + $self->{user} = $sitecfg->{mail}->{user}; + $self->{password} = $sitecfg->{mail}->{password}; + $self->{from} = $sitecfg->{mail}->{from}; + $self->{templates} = $sitecfg->{mail}->{templates}; + return $self; +} + +sub gentemplate(){ + my $self = shift; + my $template = shift; + my $iduser = shift; + my $vars = $sitecfg; + $vars->{bodytemplate} = $template.".tt"; + $vars->{userid} = $iduser; + $vars->{siteurl} = CGI::url({-base=>1}).dirname($vars->{basepath}); + + print STDERR $sitecfg->{docroot}.$sitecfg->{apidatapath}.'mail'; + chdir($sitecfg->{docroot}.$sitecfg->{apidatapath}.'mail'); + my $bodyfile = dirname($ENV{SCRIPT_FILENAME}).'/tmp/'.$template.'_'.$iduser.'.mail'; + my $template = Template->new({INCLUDE_PATH => [$sitecfg->{docroot}.$sitecfg->{apidatapath}.'mail'],OUTPUT => $bodyfile}); + $template->process("mail.tt",$vars) || die "Template process failed: ", $template->error(), "\n"; + my $db = dksdb->new(); + my $usermail = $db->dbquerysorted("select username from public.users where id='".$iduser."';"); + + my $binsemail = dirname($ENV{'SCRIPT_FILENAME'}).'/sendEmail'; + if (! -e $binsemail){ + return 256; + } + my $cmd= 'perl "'.$binsemail.'" -f '.$self->{mailfrom}.' '; + $cmd .= ' -s "'.$self->{server}.':'.$self->{port}.'" -xu "'.$self->{user}.'" -xp "'.$self->{password}.'" -q '; + $cmd .= '-o tls=auto '; + $cmd .= '-t "'.$$usermail->{0}->{username}.'" '; + $cmd .= '-u "'.$self->{templates}->{$template}.'" '; + $cmd .= '-o message-content-type=html '; + $cmd .= '-o message-charset=ISO-8859-1 '; + $cmd .= '-o message-file='.$bodyfile.' '; + # if ($attach != undef){ + # $cmd .= " -a"; + + # foreach my $a (@{$attach}){ + # $cmd .= " ".$a." "; + # } + # } + my $send = system($cmd); + return $send; + unlink($bodyfile); +} + +# sub sendemail(){ +# my $self = shift; +# my $template = shift; +# my $iduser = shift; +# my $sendto = shift; +# my $data = shift; +# my $attach = shift; +# my $body = ""; +# my $subject = ""; +# my $maildata = (); +# my $db = dksdb->new(); +# my $send = -1; +# my $tmpl = $db->dbquerysorted("select *,ml.mailtemplate from mailtemplates mt join maillayouts ml on (mt.id_maillayout=ml.id) where templatename='".$template."';"); +# if (keys(%{$tmpl}) > 0){ +# $tmpl = $tmpl->{0}; +# } +# my $datasql = $tmpl->{'emaildatasql'}; +# $data->{id} = $iduser; +# foreach my $key (keys(%{$data})){ +# my $srch = '%%'.lc($key).'%%'; +# my $repl = $data->{$key}; +# $datasql =~ s/$srch/$repl/g; +# } +# $maildata = $db->dbquerysorted($datasql); + +# $body = $tmpl->{'emailtext'}; +# $subject = $tmpl->{'mailsubject'}; +# foreach my $key (keys(%{$maildata->{0}})){ +# $data->{$key} = $maildata->{0}->{$key}; +# } +# foreach my $key (keys(%{$data})){ +# my $srch = '%%'.lc($key).'%%'; +# my $repl = $data->{$key}; +# $body =~ s/$srch/$repl/g; +# $subject =~ s/$srch/$repl/g; +# } +# my $bodytmpl = $tmpl->{mailtemplate}; +# $bodytmpl =~ s/%%BODYCONTENT%%/$body/; +# my $siteurl = $ENV{'REQUEST_SCHEME'}.'://'.$ENV{"HTTP_HOST"}; +# $bodytmpl =~ s/%%siteurl%%/$siteurl/g; +# $bodytmpl =~ s/%%SITEURL%%/$siteurl/g; +# $bodytmpl =~ s/\r//g; +# if (($bodytmpl ne "") && ($subject ne "") && ($sendto =~ /.+\@.+\..+/)){ + + +# my $binsemail = dirname($ENV{'SCRIPT_FILENAME'}).'/sendEmail'; +# my $f = dirname($ENV{SCRIPT_FILENAME}).'/tmp/mailbody_'.$sendto.'.txt'; +# $f =~ s/\@/_/g; +# if (! -e $binsemail){ +# $binsemail = dirname($ENV{'SCRIPT_FILENAME'}).'/api/sendEmail'; +# $f = dirname($ENV{SCRIPT_FILENAME}).'/api/tmp/mailbody_'.$sendto.'.txt'; +# $f =~ s/\@/_/g; +# if (! -e $binsemail){ +# return 256; +# } +# } + +# my $cmd= 'perl "'.$binsemail.'" -f '.$tmpl->{mailfrom}.' '; +# $cmd .= ' -s "'.$self->{server}.':'.$self->{port}.'" -xu "'.$self->{user}.'" -xp "'.$self->{password}.'" -q '; +# $cmd .= '-o tls=auto '; +# $cmd .= '-t "'.$sendto.'" '; +# $cmd .= '-u "'.$subject.'" '; +# $cmd .= '-o message-content-type=html '; +# $cmd .= '-o message-charset=ISO-8859-1 '; +# $cmd .= '-o message-file='.$f.' '; +# open(EML,">".$f); +# print EML $bodytmpl; +# close(EML); +# # $cmd .= '-m "'.$bodytmpl.'" '; +# if ($attach != undef){ +# $cmd .= " -a"; + +# foreach my $a (@{$attach}){ +# $cmd .= " ".$a." "; +# } +# } +# $send = system($cmd); + +# unlink($f); +# } +# return $send; +# } + +1; \ No newline at end of file diff --git a/backoffice/data/.htaccess b/backoffice/data/.htaccess index b4b826d0..908fc527 100644 --- a/backoffice/data/.htaccess +++ b/backoffice/data/.htaccess @@ -1,5 +1,5 @@ -RewriteEngine On -RewriteBase / -RewriteCond %{HTTP_COOKIE} !potlu= [NC] -RewriteRule .* "%{REQUEST_SCHEME}://%{HTTP_HOST}/backoffice/login.html" [L] -# Require all denied \ No newline at end of file +#RewriteEngine On +#RewriteBase / +#RewriteCond %{HTTP_COOKIE} !potlu= [NC] +#RewriteRule .* "%{REQUEST_SCHEME}://%{HTTP_HOST}/backoffice/login.html" [L] +Require all denied \ No newline at end of file diff --git a/backoffice/data/company/.htaccess b/backoffice/data/company/.htaccess deleted file mode 100644 index b4b826d0..00000000 --- a/backoffice/data/company/.htaccess +++ /dev/null @@ -1,5 +0,0 @@ -RewriteEngine On -RewriteBase / -RewriteCond %{HTTP_COOKIE} !potlu= [NC] -RewriteRule .* "%{REQUEST_SCHEME}://%{HTTP_HOST}/backoffice/login.html" [L] -# Require all denied \ No newline at end of file diff --git a/backoffice/data/mail/block/greeting.tt b/backoffice/data/mail/block/greeting.tt new file mode 100644 index 00000000..4f62215c --- /dev/null +++ b/backoffice/data/mail/block/greeting.tt @@ -0,0 +1,4 @@ +[% quser = dksdb.query("select prename,surname from public.users where id='$userid';") %] +[% user = quser.get_all() %] +Bonjour [% user.0.prename %] [% user.0.surname %],
+
\ No newline at end of file diff --git a/backoffice/data/mail/block/signature.tt b/backoffice/data/mail/block/signature.tt new file mode 100644 index 00000000..e29b58a2 --- /dev/null +++ b/backoffice/data/mail/block/signature.tt @@ -0,0 +1,5 @@ +
+
+Meilleurs salutations,
+
+POT Support Team \ No newline at end of file diff --git a/backoffice/data/mail/body/user_forgotpasswd.tt b/backoffice/data/mail/body/user_forgotpasswd.tt new file mode 100644 index 00000000..e2c10e80 --- /dev/null +++ b/backoffice/data/mail/body/user_forgotpasswd.tt @@ -0,0 +1,5 @@ +[% INCLUDE block/greeting.tt %] +vous avez demandé un nouveau mot de passe via pot.lu!
+cliquer ci-dessous pour confirmer votre demande. +Changer mot de passe +[% INCLUDE block/signature.tt %] \ No newline at end of file diff --git a/backoffice/data/mail/body/user_registration.tt b/backoffice/data/mail/body/user_registration.tt new file mode 100644 index 00000000..d781c063 --- /dev/null +++ b/backoffice/data/mail/body/user_registration.tt @@ -0,0 +1,8 @@ +[% INCLUDE block/greeting.tt %] +[% quser = dksdb.query("select username,vcode from public.users where id='$userid';") %] +[% user = quser.get_all() %] +Merci pour votre création de compte sur pot.lu, +

+votre code de validation: [% user.0.vcode %]
+Finissez votre régistration en entrant le votre code de validation ici: [% siteurl %]validation.html +[% INCLUDE block/signature.tt %] diff --git a/backoffice/data/mail/mail.tt b/backoffice/data/mail/mail.tt new file mode 100644 index 00000000..c42d41c4 --- /dev/null +++ b/backoffice/data/mail/mail.tt @@ -0,0 +1,23 @@ +[% USE DBI %] +[% USE dksdb = DBI(dsn, dbuser, dbpassword) %] + + + + + + +
+ POT - Plan d'organisation de travail +
+
+ [% INCLUDE "body/$bodytemplate" %] +
+
+
+ + \ No newline at end of file diff --git a/backoffice/index.cgi b/backoffice/index.cgi index dc568c69..18ad2d47 100755 --- a/backoffice/index.cgi +++ b/backoffice/index.cgi @@ -98,6 +98,12 @@ if ($cgi->request_method() eq "POST"){ $vars->{messagetype} = $ret->{messagetype}; $vars->{page} = "message.tt"; } + if (exists($p->{'btnaccountreset'})){ + my $ret = $se->accountreset($p); + $vars->{message} = $ret->{message}; + $vars->{messagetype} = $ret->{messagetype}; + $vars->{page} = "message.tt"; + } if (exists($p->{logout})){ $se->deletesession($p->{sid}); @@ -179,8 +185,8 @@ if ($skl ne "skeleton/login.tt" && $vars->{page} =~ /^module/){ if ($vars->{page} !~ /\.tt$/) { $skl = "skeleton/module_file.tt"; } - $vars->{params}= $p; } +$vars->{params}= $p; #END - iFrame - Modules diff --git a/backoffice/tmpl/module/staff/widgets/staff/staff.js b/backoffice/tmpl/module/staff/widgets/staff/staff.js index 2ac89d2f..929d6ee5 100644 --- a/backoffice/tmpl/module/staff/widgets/staff/staff.js +++ b/backoffice/tmpl/module/staff/widgets/staff/staff.js @@ -86,7 +86,7 @@ var staff ={ add: function(){ cleanform2("staff",staff.choices); - module.viewpanel(staff.name); + module.viewpanel("frm_" + staff.name); //module.viewdialog(staff.name,null); //document.getElementById("company").addEventListener('blur', function(event){staff.checkschema(event,this.id);},true); //module.viewpanel('frm_' + staff.name); diff --git a/backoffice/tmpl/skeleton/login.tt b/backoffice/tmpl/skeleton/login.tt index 717e85a9..dff443c8 100644 --- a/backoffice/tmpl/skeleton/login.tt +++ b/backoffice/tmpl/skeleton/login.tt @@ -19,6 +19,8 @@ [% INCLUDE skeleton/login/message.tt %] [% ELSIF pagename == 'validationcode' %] [% INCLUDE skeleton/login/validationcode.tt %] + [% ELSIF pagename == 'accountreset' %] + [% INCLUDE skeleton/login/accountreset.tt %] [% ELSE %] [% INCLUDE skeleton/login/login.tt %] [% END %] diff --git a/backoffice/tmpl/skeleton/login/accountreset.tt b/backoffice/tmpl/skeleton/login/accountreset.tt new file mode 100644 index 00000000..6a2bd4fc --- /dev/null +++ b/backoffice/tmpl/skeleton/login/accountreset.tt @@ -0,0 +1,37 @@ +[% IF params.reset.length > 0 %] +[% accreset = params.reset %] +[% USE DBI %] +[% USE dksdb = DBI(dsn, dbuser, dbpassword) %] +[% quser = dksdb.query("select username from public.users where regcode='$accreset';") %] +[% END %] +[% IF quser.size > 0 %] + [% user = quser.get_all() %] +
+

Demande de changement de mot de passe

+
Entrez votre nouveau mot de passe ci-dessous!
+
+
+ + +
+ + +
+
+ + +
+
+ + +
+
+ +
+ +
+[% ELSE %] +[% INCLUDE skeleton/login/login.tt %] +[% END %] \ No newline at end of file diff --git a/backoffice/tmpl/skeleton/login/validationcode.tt b/backoffice/tmpl/skeleton/login/validationcode.tt index 87b36bea..2e997aa5 100644 --- a/backoffice/tmpl/skeleton/login/validationcode.tt +++ b/backoffice/tmpl/skeleton/login/validationcode.tt @@ -1,12 +1,12 @@
-

Validation de votre addressee E-Mail

+

Validation de votre compte

 
[% message %]
- + diff --git a/dev/diff_files.sh b/dev/diff_files.sh index 9ad3d1a7..c37967ac 100644 --- a/dev/diff_files.sh +++ b/dev/diff_files.sh @@ -14,11 +14,11 @@ ssh -p ${SSHPORT} ${SSHUSER}@${SSHHOST} 'cd '${REMOTEFOLDER}' && find . -type f CDATE=`date +"%F"` echo "To update:" -UPDFILES=`diff -y -W 200 ${CALLDIR}/sourcefiles.local.txt ${CALLDIR}/sourcefiles.remote.txt | grep " |" | awk '{ print $1 }' | cut -d"|" -f 1 | grep -v ".htaccess" | grep -v ".git" | grep -v "/data/" | grep -v "/media/"` +UPDFILES=`diff -y -W 200 ${CALLDIR}/sourcefiles.local.txt ${CALLDIR}/sourcefiles.remote.txt | grep " |" | awk '{ print $1 }' | cut -d"|" -f 1 | grep -v ".htaccess" | grep -v ".git" | grep -v "/media/"` echo ${UPDFILES} echo "" echo "new files:" -INSFILES=`diff -y -W 200 ${CALLDIR}/sourcefiles.local.txt ${CALLDIR}/sourcefiles.remote.txt | grep " <" | awk '{ print $1 }' | cut -d"|" -f 1 | grep -v ".htaccess" | grep -v ".git" | grep -v "/data/" | grep -v "/media/"` +INSFILES=`diff -y -W 200 ${CALLDIR}/sourcefiles.local.txt ${CALLDIR}/sourcefiles.remote.txt | grep " <" | awk '{ print $1 }' | cut -d"|" -f 1 | grep -v ".htaccess" | grep -v ".git" | grep -v "/media/"` echo ${INSFILES} echo "" echo "only online or OLD files:" diff --git a/dev/sourcefiles.local.txt b/dev/sourcefiles.local.txt index 34dbc759..6b79fa9d 100644 --- a/dev/sourcefiles.local.txt +++ b/dev/sourcefiles.local.txt @@ -1,7 +1,7 @@ ./backoffice/api/db.cgi|4005 ./backoffice/api/file.cgi|4381 -./backoffice/api/index.cgi|6319 -./backoffice/api/lib/dksconfig.pm|871 +./backoffice/api/index.cgi|6445 +./backoffice/api/lib/dksconfig.pm|1536 ./backoffice/api/lib/dksdb.pm|10421 ./backoffice/api/lib/dkssavefile.pm|991 ./backoffice/api/lib/perl5/Business/Tax/VAT/Validation.pm|14797 @@ -645,17 +645,22 @@ ./backoffice/api/lib/perl5/x86_64-linux-gnu-thread-multi/Test/LeakTrace.pm|7262 ./backoffice/api/lib/perl5/x86_64-linux-gnu-thread-multi/Test/LeakTrace/Script.pm|986 ./backoffice/api/lib/perl5/x86_64-linux-gnu-thread-multi/Text/Soundex.pm|8345 -./backoffice/api/lib/sendemail.pm|2953 +./backoffice/api/lib/sendemail_new.pm|4865 +./backoffice/api/lib/sendemail.pm|3038 ./backoffice/api/lib/session.pm|9650 ./backoffice/api/sendEmail|80246 ./backoffice/api/upload.cgi|9418 ./backoffice/css/module.css|181 ./backoffice/css/w3pro.css|27053 -./backoffice/data/company/.htaccess|167 -./backoffice/data/.htaccess|167 +./backoffice/data/.htaccess|169 +./backoffice/data/mail/block/greeting.tt|180 +./backoffice/data/mail/block/signature.tt|62 +./backoffice/data/mail/body/user_forgotpasswd.tt|243 +./backoffice/data/mail/body/user_registration.tt|551 +./backoffice/data/mail/mail.tt|709 ./backoffice/data/schemata/defaultcompany.schema.sql|53843 ./backoffice/data/schemata/.htaccess|167 -./backoffice/.htaccess|222 +./backoffice/.htaccess|202 ./backoffice/img/bg1.jpg|135161 ./backoffice/img/favicon/android-icon-144x144.png|12179 ./backoffice/img/favicon/android-icon-192x192.png|16669 @@ -795,7 +800,7 @@ ./backoffice/img/no-news-img.png|17922 ./backoffice/img/pottop.png|2689 ./backoffice/img/toplogo.png|31456 -./backoffice/index.cgi|5349 +./backoffice/index.cgi|5550 ./backoffice/js/admin.js|3435 ./backoffice/js/.DS_Store|6148 ./backoffice/js/formsave.js|9096 @@ -841,7 +846,7 @@ ./backoffice/tmpl/module/staff/widgets/staffcontract/tbar_staffcontract.tt|645 ./backoffice/tmpl/module/staff/widgets/staffcontract/tbl_staffcontract.tt|276 ./backoffice/tmpl/module/staff/widgets/staff/frm_staff.tt|1853 -./backoffice/tmpl/module/staff/widgets/staff/staff.js|3778 +./backoffice/tmpl/module/staff/widgets/staff/staff.js|3787 ./backoffice/tmpl/module/staff/widgets/staff/tbar_staff.tt|672 ./backoffice/tmpl/module/staff/widgets/staff/tbl_staff.tt|125 ./backoffice/tmpl/module/timetrackers/index.js|399 @@ -855,12 +860,13 @@ ./backoffice/tmpl/module/workplans/index.js|3126 ./backoffice/tmpl/module/workplans/index.tt|3065 ./backoffice/tmpl/skeleton/index.tt|4550 +./backoffice/tmpl/skeleton/login/accountreset.tt|1679 ./backoffice/tmpl/skeleton/login/forgotpassword.tt|874 ./backoffice/tmpl/skeleton/login/login.tt|1231 ./backoffice/tmpl/skeleton/login/message.tt|638 ./backoffice/tmpl/skeleton/login/register.tt|2545 -./backoffice/tmpl/skeleton/login.tt|1069 -./backoffice/tmpl/skeleton/login/validationcode.tt|950 +./backoffice/tmpl/skeleton/login.tt|1171 +./backoffice/tmpl/skeleton/login/validationcode.tt|954 ./backoffice/tmpl/skeleton/module_file.tt|84 ./backoffice/tmpl/skeleton/module.tt|2718 ./backoffice/vendors/choices/base.css|2314 @@ -1173,7 +1179,7 @@ ./css/site.css|181 ./css/w3pro.css|26847 ./.gitignore|26 -./.htaccess|592 +./.htaccess|277 ./img/favicon/android-icon-144x144.png|12179 ./img/favicon/android-icon-192x192.png|16669 ./img/favicon/android-icon-36x36.png|2527 diff --git a/dev/sourcefiles.remote.txt b/dev/sourcefiles.remote.txt index be734da0..aedf1788 100644 --- a/dev/sourcefiles.remote.txt +++ b/dev/sourcefiles.remote.txt @@ -1,9 +1,10 @@ -./backoffice/api/db.cgi|2779 +./backoffice/api/db.cgi|4005 ./backoffice/api/file.cgi|4381 -./backoffice/api/index.cgi|5145 -./backoffice/api/lib/dksconfig.pm|871 -./backoffice/api/lib/dksdb.pm|10174 +./backoffice/api/index.cgi|6445 +./backoffice/api/lib/dksconfig.pm|1536 +./backoffice/api/lib/dksdb.pm|10421 ./backoffice/api/lib/dkssavefile.pm|991 +./backoffice/api/lib/perl5/Business/Tax/VAT/Validation.pm|14797 ./backoffice/api/lib/perl5/CGI/Cookie.pm|6599 ./backoffice/api/lib/perl5/CGI/File/Temp.pm|969 ./backoffice/api/lib/perl5/CGI.pm|125242 @@ -644,16 +645,20 @@ ./backoffice/api/lib/perl5/x86_64-linux-gnu-thread-multi/Test/LeakTrace.pm|7262 ./backoffice/api/lib/perl5/x86_64-linux-gnu-thread-multi/Test/LeakTrace/Script.pm|986 ./backoffice/api/lib/perl5/x86_64-linux-gnu-thread-multi/Text/Soundex.pm|8345 -./backoffice/api/lib/sendemail.pm|3727 -./backoffice/api/lib/session.pm|9046 +./backoffice/api/lib/sendemail_new.pm|4865 +./backoffice/api/lib/sendemail.pm|3038 +./backoffice/api/lib/session.pm|9650 ./backoffice/api/sendEmail|80246 -./backoffice/api/tmp/sql.log|256 ./backoffice/api/upload.cgi|9418 -./backoffice/css/module.css|174 +./backoffice/css/module.css|181 ./backoffice/css/w3pro.css|27053 -./backoffice/data/company/.htaccess|167 -./backoffice/data/.htaccess|167 -./backoffice/data/schemata/defaultcompany.schema.sql|52381 +./backoffice/data/.htaccess|169 +./backoffice/data/mail/block/greeting.tt|180 +./backoffice/data/mail/block/signature.tt|62 +./backoffice/data/mail/body/user_forgotpasswd.tt|243 +./backoffice/data/mail/body/user_registration.tt|551 +./backoffice/data/mail/mail.tt|709 +./backoffice/data/schemata/defaultcompany.schema.sql|53843 ./backoffice/data/schemata/.htaccess|167 ./backoffice/.htaccess|214 ./backoffice/img/bg1.jpg|135161 @@ -686,24 +691,24 @@ ./backoffice/img/favicon/ms-icon-70x70.png|5051 ./backoffice/img/hourtrax.png|44729 ./backoffice/img/icons/access.svg|1553 -./backoffice/img/icons/access_white.svg|1565 +./backoffice/img/icons/access_white.svg|1569 ./backoffice/img/icons/address.svg|800 ./backoffice/img/icons/address_white.svg|812 ./backoffice/img/icons/Agreement_01.svg|5234 ./backoffice/img/icons/apps.svg|781 ./backoffice/img/icons/apps_white.svg|793 ./backoffice/img/icons/archive.svg|641 -./backoffice/img/icons/archive_white.svg|654 +./backoffice/img/icons/archive_white.svg|658 ./backoffice/img/icons/Bill.svg|3185 -./backoffice/img/icons/calendar.svg|954 -./backoffice/img/icons/calendar_white.svg|966 +./backoffice/img/icons/calendar.svg|1038 +./backoffice/img/icons/calendar_white.svg|1038 ./backoffice/img/icons/clubs.svg|1033 ./backoffice/img/icons/club.svg|823 ./backoffice/img/icons/clubs_white.svg|1045 ./backoffice/img/icons/club_white.svg|835 ./backoffice/img/icons/code.svg|589 ./backoffice/img/icons/company.svg|1482 -./backoffice/img/icons/company_white.svg|1494 +./backoffice/img/icons/company_white.svg|1498 ./backoffice/img/icons/cubelight.svg|1023 ./backoffice/img/icons/cubelight_white.svg|1036 ./backoffice/img/icons/cube.svg|365 @@ -712,7 +717,7 @@ ./backoffice/img/icons/dashboard_white.svg|1098 ./backoffice/img/icons/Document_Save.svg|729 ./backoffice/img/icons/documents.svg|987 -./backoffice/img/icons/documents_white.svg|999 +./backoffice/img/icons/documents_white.svg|1003 ./backoffice/img/icons/download.svg|339 ./backoffice/img/icons/download_white.svg|351 ./backoffice/img/icons/duplicate.svg|430 @@ -720,7 +725,7 @@ ./backoffice/img/icons/edit.svg|712 ./backoffice/img/icons/edit_white.svg|725 ./backoffice/img/icons/excel.svg|1394 -./backoffice/img/icons/excel_white.svg|1406 +./backoffice/img/icons/excel_white.svg|1410 ./backoffice/img/icons/file/dir.png|6937 ./backoffice/img/icons/file/doc.png|6455 ./backoffice/img/icons/file/docx.png|6455 @@ -737,7 +742,7 @@ ./backoffice/img/icons/file/xlsx.png|6065 ./backoffice/img/icons/Floppy.svg|1058 ./backoffice/img/icons/folder_add.svg|1438 -./backoffice/img/icons/folder_add_white.svg|1450 +./backoffice/img/icons/folder_add_white.svg|1454 ./backoffice/img/icons/Folder_Delete_01.svg|1254 ./backoffice/img/icons/Folder_Find_01.svg|1371 ./backoffice/img/icons/folder.svg|404 @@ -746,7 +751,7 @@ ./backoffice/img/icons/globe_white.svg|1254 ./backoffice/img/icons/group.svg|1994 ./backoffice/img/icons/group_white.svg|2006 -./backoffice/img/icons/home.svg|522 +./backoffice/img/icons/home.svg|531 ./backoffice/img/icons/inbox.svg|413 ./backoffice/img/icons/inbox_white.svg|425 ./backoffice/img/icons/library.svg|968 @@ -758,7 +763,7 @@ ./backoffice/img/icons/logout.svg|402 ./backoffice/img/icons/logout_white.svg|414 ./backoffice/img/icons/log.svg|1710 -./backoffice/img/icons/log_white.svg|1722 +./backoffice/img/icons/log_white.svg|1726 ./backoffice/img/icons/menu.svg|336 ./backoffice/img/icons/menu_white.svg|348 ./backoffice/img/icons/newspaper.svg|812 @@ -770,13 +775,14 @@ ./backoffice/img/icons/pdfexport.svg|2730 ./backoffice/img/icons/pdfexport_white.svg|2730 ./backoffice/img/icons/pdf.svg|3436 -./backoffice/img/icons/pdf_white.svg|3448 +./backoffice/img/icons/pdf_white.svg|3452 ./backoffice/img/icons/pictures.svg|1420 -./backoffice/img/icons/pictures_white.svg|1432 +./backoffice/img/icons/pictures_white.svg|1436 ./backoffice/img/icons/plus.svg|535 ./backoffice/img/icons/plus_white.svg|547 +./backoffice/img/icons/poticon.svg|10061 ./backoffice/img/icons/projects.svg|939 -./backoffice/img/icons/projects_white.svg|951 +./backoffice/img/icons/projects_white.svg|955 ./backoffice/img/icons/remove.svg|816 ./backoffice/img/icons/remove_white.svg|828 ./backoffice/img/icons/Save.svg|477 @@ -785,68 +791,84 @@ ./backoffice/img/icons/target.svg|780 ./backoffice/img/icons/target_white.svg|792 ./backoffice/img/icons/upload.svg|507 -./backoffice/img/icons/upload_white.svg|519 +./backoffice/img/icons/upload_white.svg|523 ./backoffice/img/icons/user.svg|780 ./backoffice/img/icons/user_white.svg|792 ./backoffice/img/logo_512.png|31456 ./backoffice/img/logo_512_xx.png|14719 ./backoffice/img/no-image-icon.png|20003 ./backoffice/img/no-news-img.png|17922 +./backoffice/img/pottop.png|2689 ./backoffice/img/toplogo.png|31456 -./backoffice/index.cgi|5317 -./backoffice/js/admin.js|3062 +./backoffice/index.cgi|5550 +./backoffice/js/admin.js|3435 ./backoffice/js/.DS_Store|6148 -./backoffice/js/formsave.js|9031 -./backoffice/js/module_global.js|2812 -./backoffice/js/request.js|3812 +./backoffice/js/formsave.js|9096 +./backoffice/js/module_global.js|3286 +./backoffice/js/request.js|3866 ./backoffice/tmpl/block/cgu.tt|9358 -./backoffice/tmpl/block/dlgdeleterow.tt|2528 +./backoffice/tmpl/block/dlgdataload.tt|1293 +./backoffice/tmpl/block/dlgdeleterow.tt|2573 +./backoffice/tmpl/block/dlgmessage.tt|950 ./backoffice/tmpl/block/dlguploadfile.tt|3399 ./backoffice/tmpl/block/head.tt|1782 ./backoffice/tmpl/block/snackbar.tt|25 ./backoffice/tmpl/block/toolbars.tt|515 ./backoffice/tmpl/macro/fields.tt|8707 -./backoffice/tmpl/module/companies/index.js|4825 -./backoffice/tmpl/module/companies/index.tt|603 -./backoffice/tmpl/module/companies/widgets/companies/companies.js|2799 -./backoffice/tmpl/module/companies/widgets/companies/frm_companies.tt|1865 +./backoffice/tmpl/module/companies/index.js|229 +./backoffice/tmpl/module/companies/index.tt|626 +./backoffice/tmpl/module/companies/widgets/companies/companies.js|4126 +./backoffice/tmpl/module/companies/widgets/companies/frm_companies.tt|1897 ./backoffice/tmpl/module/companies/widgets/companies/tbar_companies.tt|694 ./backoffice/tmpl/module/companies/widgets/companies/tbl_companies.tt|133 ./backoffice/tmpl/module/dashboard/index.js|165 -./backoffice/tmpl/module/dashboard/index.tt|935 -./backoffice/tmpl/module/planning/index.js|555 -./backoffice/tmpl/module/planning/index.tt|1067 -./backoffice/tmpl/module/planning/widgets/reportperiod/dlg_reportperiod.tt|1402 -./backoffice/tmpl/module/planning/widgets/reportperiod/reportperiod.js|2249 -./backoffice/tmpl/module/planning/widgets/reportperiod/tbar_reportperiod.tt|630 +./backoffice/tmpl/module/dashboard/index.tt|987 +./backoffice/tmpl/module/planning/index.js|305 +./backoffice/tmpl/module/planning/index.tt|1001 +./backoffice/tmpl/module/planning/widgets/reportperiod/dlg_reportperiod.tt|1396 +./backoffice/tmpl/module/planning/widgets/reportperiod/reportperiod.js|3491 +./backoffice/tmpl/module/planning/widgets/reportperiod/tbar_reportperiod.tt|632 ./backoffice/tmpl/module/planning/widgets/reportperiod/tbl_reportperiod.tt|139 -./backoffice/tmpl/module/planning/widgets/staffworkplan/frm_staffworkplan.tt|2881 -./backoffice/tmpl/module/planning/widgets/staffworkplan/staffworkplan.js|9336 -./backoffice/tmpl/module/planning/widgets/staffworkplan/tbar_staffworkplan.tt|714 +./backoffice/tmpl/module/planning/widgets/staffworkplan/frm_staffworkplan.tt|2928 +./backoffice/tmpl/module/planning/widgets/staffworkplan/staffworkplan.js|14277 +./backoffice/tmpl/module/planning/widgets/staffworkplan/tbar_staffworkplan.tt|912 ./backoffice/tmpl/module/planning/widgets/staffworkplan/tbl_staffworkplan.tt|141 ./backoffice/tmpl/module/profile/dlgpassword.tt|2911 -./backoffice/tmpl/module/profile/dlgusername.tt|3817 -./backoffice/tmpl/module/profile/index.js|1866 -./backoffice/tmpl/module/profile/index.tt|1791 +./backoffice/tmpl/module/profile/dlgusername.tt|3814 +./backoffice/tmpl/module/profile/index.js|1410 +./backoffice/tmpl/module/profile/index.tt|1767 ./backoffice/tmpl/module/sites/index.js|4519 ./backoffice/tmpl/module/sites/index.tt|0 -./backoffice/tmpl/module/staff/index.js|15017 -./backoffice/tmpl/module/staff/index.tt|5197 +./backoffice/tmpl/module/staff/index.js|247 +./backoffice/tmpl/module/staff/index.tt|697 +./backoffice/tmpl/module/staff/widgets/staffcontract/dlg_staffcontract.tt|1344 +./backoffice/tmpl/module/staff/widgets/staffcontract/staffcontract.js|4239 +./backoffice/tmpl/module/staff/widgets/staffcontract/tbar_staffcontract.tt|645 +./backoffice/tmpl/module/staff/widgets/staffcontract/tbl_staffcontract.tt|276 +./backoffice/tmpl/module/staff/widgets/staff/frm_staff.tt|1853 +./backoffice/tmpl/module/staff/widgets/staff/staff.js|3787 +./backoffice/tmpl/module/staff/widgets/staff/tbar_staff.tt|672 +./backoffice/tmpl/module/staff/widgets/staff/tbl_staff.tt|125 ./backoffice/tmpl/module/timetrackers/index.js|399 ./backoffice/tmpl/module/timetrackers/index.tt|1304 -./backoffice/tmpl/module/users/index.js|8237 -./backoffice/tmpl/module/users/index.tt|5344 +./backoffice/tmpl/module/users/index.js|221 +./backoffice/tmpl/module/users/index.tt|594 +./backoffice/tmpl/module/users/widgets/users/dlg_users.tt|1765 +./backoffice/tmpl/module/users/widgets/users/tbar_users.tt|601 +./backoffice/tmpl/module/users/widgets/users/tbl_users.tt|125 +./backoffice/tmpl/module/users/widgets/users/users.js|6218 ./backoffice/tmpl/module/workplans/index.js|3126 ./backoffice/tmpl/module/workplans/index.tt|3065 -./backoffice/tmpl/skeleton/index.tt|4163 +./backoffice/tmpl/skeleton/index.tt|4550 +./backoffice/tmpl/skeleton/login/accountreset.tt|1679 ./backoffice/tmpl/skeleton/login/forgotpassword.tt|874 ./backoffice/tmpl/skeleton/login/login.tt|1231 ./backoffice/tmpl/skeleton/login/message.tt|638 ./backoffice/tmpl/skeleton/login/register.tt|2545 -./backoffice/tmpl/skeleton/login.tt|1069 -./backoffice/tmpl/skeleton/login/validationcode.tt|950 +./backoffice/tmpl/skeleton/login.tt|1171 +./backoffice/tmpl/skeleton/login/validationcode.tt|954 ./backoffice/tmpl/skeleton/module_file.tt|84 -./backoffice/tmpl/skeleton/module.tt|2604 +./backoffice/tmpl/skeleton/module.tt|2718 ./backoffice/vendors/choices/base.css|2314 ./backoffice/vendors/choices/base.min.css|1604 ./backoffice/vendors/choices/choices.css|8099 @@ -858,7 +880,7 @@ ./backoffice/vendors/ctxmenu/ctxmenu.css|1689 ./backoffice/vendors/ctxmenu/ctxmenu.js|7569 ./backoffice/vendors/flatpickr/flatpickr.css|18831 -./backoffice/vendors/flatpickr/flatpickr.js|118018 +./backoffice/vendors/flatpickr/flatpickr.js|118042 ./backoffice/vendors/flatpickr/flatpickr.min.css|15954 ./backoffice/vendors/flatpickr/flatpickr.min.js|48368 ./backoffice/vendors/flatpickr/ie.css|260 @@ -873,13 +895,13 @@ ./backoffice/vendors/flatpickr/l10n/lu.js|1802 ./backoffice/vendors/flatpickr/plugins/confirmDate/confirmDate.css|373 ./backoffice/vendors/flatpickr/plugins/confirmDate/confirmDate.d.ts|272 -./backoffice/vendors/flatpickr/plugins/confirmDate/confirmDate.js|4212 +./backoffice/vendors/flatpickr/plugins/confirmDate/confirmDate.js|4236 ./backoffice/vendors/flatpickr/plugins/labelPlugin/labelPlugin.d.ts|114 ./backoffice/vendors/flatpickr/plugins/labelPlugin/labelPlugin.js|964 ./backoffice/vendors/flatpickr/plugins/minMaxTimePlugin.d.ts|491 ./backoffice/vendors/flatpickr/plugins/minMaxTimePlugin.js|12399 ./backoffice/vendors/flatpickr/plugins/monthSelect/index.d.ts|367 -./backoffice/vendors/flatpickr/plugins/monthSelect/index.js|7733 +./backoffice/vendors/flatpickr/plugins/monthSelect/index.js|7757 ./backoffice/vendors/flatpickr/plugins/monthSelect/style.css|1561 ./backoffice/vendors/flatpickr/plugins/monthSelect/tests.spec.d.ts|11 ./backoffice/vendors/flatpickr/plugins/rangePlugin.d.ts|312 @@ -1085,8 +1107,8 @@ ./backoffice/vendors/tabulator/js/tabulator.min.js|319423 ./backoffice/vendors/tinymce/changelog.txt|131850 ./backoffice/vendors/tinymce/js/tinymce/jquery.tinymce.min.js|6635 -./backoffice/vendors/tinymce/js/tinymce/langs/de.js|10075 -./backoffice/vendors/tinymce/js/tinymce/langs/fr_FR.js|9880 +./backoffice/vendors/tinymce/js/tinymce/langs/de.js|10334 +./backoffice/vendors/tinymce/js/tinymce/langs/fr_FR.js|10140 ./backoffice/vendors/tinymce/js/tinymce/langs/readme.md|151 ./backoffice/vendors/tinymce/js/tinymce/license.txt|26441 ./backoffice/vendors/tinymce/js/tinymce/plugins/advlist/plugin.min.js|3995 -- 2.39.5