From 58819fd61510f6ec20ee38e7245d757b84a1e9ae Mon Sep 17 00:00:00 2001 From: ragu Date: Sat, 10 Dec 2022 15:47:22 +0100 Subject: [PATCH] external jquery and bootstrap --- .gitignore | 10 ---- copri4/main/css/bootstrap-icons-1.8.1 | 1 - copri4/main/external | 1 + copri4/main/js/bootstrap-5.0.2-dist | 1 - copri4/main/js/bootstrap-5.1.3-dist | 1 - copri4/main/js/jquery-3.3.1.min.js | 1 - copri4/main/js/jquery-ui-1.12.1 | 1 - copri4/main/src/Mod/GBFSout.pm | 36 +++++++---- copri4/main/src/Mod/Premain.pm | 56 +----------------- copri4/main/src/Mod/Shareework.pm | 4 +- copri4/main/src/Tpl/BaseEdit.pm | 8 +-- copri4/main/src/Tpl/TransPositionen.pm | 4 +- copri4/mkaccess.sh | 40 ++++++++++++- .../apache/shareeapp-operator.conf | 11 ++-- .../css/bootstrap-icons-1.8.1 | 1 - copri4/shareeapp-operator/external | 1 + copri4/shareeapp-operator/src/Tpl/FormEdit.pm | 4 +- .../shareeapp-operator/src/Tpl/PayoneSEPA.pm | 2 +- copri4/shareeconf/examples/README | 0 copri4/shareeconf/examples/apikeys.cfg | 0 copri4/shareeconf/examples/global.cfg | 30 +++++----- copri4/shareeconf/examples/mailx.cfg | 0 .../examples/sharee_operator.sql.gz | Bin 16358 -> 16199 bytes .../apache/shareedms-operator.conf | 15 ++--- copri4/shareedms-operator/external | 1 + copri4/shareedms-operator/src/Lib/Config.pm | 1 - .../apache/shareeweb-operator.conf | 13 ++-- copri4/shareeweb-project/external | 1 + 28 files changed, 109 insertions(+), 135 deletions(-) delete mode 120000 copri4/main/css/bootstrap-icons-1.8.1 create mode 120000 copri4/main/external delete mode 120000 copri4/main/js/bootstrap-5.0.2-dist delete mode 120000 copri4/main/js/bootstrap-5.1.3-dist delete mode 120000 copri4/main/js/jquery-3.3.1.min.js delete mode 120000 copri4/main/js/jquery-ui-1.12.1 delete mode 120000 copri4/shareeapp-operator/css/bootstrap-icons-1.8.1 create mode 120000 copri4/shareeapp-operator/external mode change 100644 => 100755 copri4/shareeconf/examples/README mode change 100644 => 100755 copri4/shareeconf/examples/apikeys.cfg mode change 100644 => 100755 copri4/shareeconf/examples/global.cfg mode change 100644 => 100755 copri4/shareeconf/examples/mailx.cfg mode change 100644 => 100755 copri4/shareeconf/examples/sharee_operator.sql.gz create mode 120000 copri4/shareedms-operator/external create mode 120000 copri4/shareeweb-project/external diff --git a/.gitignore b/.gitignore index 99c4468..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +0,0 @@ -cache/ -data/ -pdf/ -cache/ -*.html -xml/ -csv/ -ftp/ -site/ -apk/ diff --git a/copri4/main/css/bootstrap-icons-1.8.1 b/copri4/main/css/bootstrap-icons-1.8.1 deleted file mode 120000 index dcac63b..0000000 --- a/copri4/main/css/bootstrap-icons-1.8.1 +++ /dev/null @@ -1 +0,0 @@ -/etc/shareeconf/bootstrap-icons-1.8.1 \ No newline at end of file diff --git a/copri4/main/external b/copri4/main/external new file mode 120000 index 0000000..fa6f135 --- /dev/null +++ b/copri4/main/external @@ -0,0 +1 @@ +/var/www/external \ No newline at end of file diff --git a/copri4/main/js/bootstrap-5.0.2-dist b/copri4/main/js/bootstrap-5.0.2-dist deleted file mode 120000 index 8d27d79..0000000 --- a/copri4/main/js/bootstrap-5.0.2-dist +++ /dev/null @@ -1 +0,0 @@ -/etc/shareeconf/bootstrap-5.0.2-dist \ No newline at end of file diff --git a/copri4/main/js/bootstrap-5.1.3-dist b/copri4/main/js/bootstrap-5.1.3-dist deleted file mode 120000 index 4c7e567..0000000 --- a/copri4/main/js/bootstrap-5.1.3-dist +++ /dev/null @@ -1 +0,0 @@ -/etc/shareeconf/bootstrap-5.1.3-dist \ No newline at end of file diff --git a/copri4/main/js/jquery-3.3.1.min.js b/copri4/main/js/jquery-3.3.1.min.js deleted file mode 120000 index 49433bb..0000000 --- a/copri4/main/js/jquery-3.3.1.min.js +++ /dev/null @@ -1 +0,0 @@ -/etc/shareeconf/jquery-3.3.1.min.js \ No newline at end of file diff --git a/copri4/main/js/jquery-ui-1.12.1 b/copri4/main/js/jquery-ui-1.12.1 deleted file mode 120000 index 85e8f82..0000000 --- a/copri4/main/js/jquery-ui-1.12.1 +++ /dev/null @@ -1 +0,0 @@ -/etc/shareeconf/jquery-ui-1.12.1 \ No newline at end of file diff --git a/copri4/main/src/Mod/GBFSout.pm b/copri4/main/src/Mod/GBFSout.pm index 5d6479e..a5988df 100755 --- a/copri4/main/src/Mod/GBFSout.pm +++ b/copri4/main/src/Mod/GBFSout.pm @@ -87,12 +87,14 @@ sub station_information { my $rest_stations = "request=stations_available&project=$project&authcookie=$authcookie->{authcookie}"; my $gbfs_resp = {}; + my @gbfs_stations = (); my $stations_json = fetch_primary_json("",$uri_request,$rest_stations); #decode json to hash - my $response_stations = decode_json($stations_json); - my @gbfs_stations = (); + eval { + my $response_stations = {}; + $response_stations = decode_json($stations_json); - foreach my $station (keys (%{ $response_stations->{shareejson}->{stations} })) { + foreach my $station (keys (%{ $response_stations->{shareejson}->{stations} })) { #print Dumper($response_stations->{shareejson}->{stations}->{$station}); my %gbfs_station = (); $gbfs_station{$station}{station_id} = $response_stations->{shareejson}->{stations}->{$station}->{station}; @@ -102,9 +104,10 @@ sub station_information { $gbfs_station{$station}{lon} = $response_stations->{shareejson}->{stations}->{$station}->{gps}->{longitude}; #$gbfs_station{$station}{is_charging_station} = 1 if(grep(/300102/, @{$response_stations->{shareejson}->{stations}->{$station}->{station_group}}));#E-L push (@gbfs_stations, $gbfs_station{$station}); - } + } + }; my $last_updated = time(); - $gbfs_resp = { + $gbfs_resp = { "last_updated" => $last_updated, "ttl" => 10, "version" => "2.2", @@ -112,7 +115,10 @@ sub station_information { "stations" => [ @gbfs_stations ] } }; - + if ($@){ + $bw->log("Failure, GBFSout station_information not valid","",""); + warn $@; + } my $jrout = $json->pretty->encode($gbfs_resp); print $jrout; @@ -131,12 +137,14 @@ sub vehicle_status { my $rest_bikes = "request=bikes_available&project=$project&authcookie=$authcookie->{authcookie}"; my $gbfs_resp = {}; + my @gbfs_bikes = (); my $bikes_json = fetch_primary_json("",$uri_request,$rest_bikes); #decode json to hash - my $response_bikes = decode_json($bikes_json); - my @gbfs_bikes = (); + eval { + my $response_bikes = {}; + $response_bikes = decode_json($bikes_json); - foreach my $bike (keys (%{ $response_bikes->{shareejson}->{bikes} })) { + foreach my $bike (keys (%{ $response_bikes->{shareejson}->{bikes} })) { #if($response_bikes->{shareejson}->{bikes}->{$bike}->{station} eq "FR105"){ my %gbfs_bike = (); $gbfs_bike{$bike}{station_id} = $response_bikes->{shareejson}->{bikes}->{$bike}->{station}; @@ -147,7 +155,7 @@ sub vehicle_status { #$gbfs_bike{$bike}{is_disabled} = 0; push (@gbfs_bikes, $gbfs_bike{$bike}); #} - } + } #{ #"vehicle_id":"987fd100-b822-4347-86a4-b3eef8ca8b53", @@ -159,7 +167,7 @@ sub vehicle_status { #"station_id":"86", #"pricing_plan_id":"plan3" #} - + }; my $last_updated = time(); $gbfs_resp = { "last_updated" => $last_updated, @@ -169,6 +177,10 @@ sub vehicle_status { "vehicles" => [ @gbfs_bikes ] } }; + if ($@){ + $bw->log("Failure, GBFSout vehicle_status not valid","",""); + warn $@; + } my $jrout = $json->pretty->encode($gbfs_resp); print $jrout; @@ -194,6 +206,8 @@ sub fetch_primary_json { #Pass request to the user agent and get a response back my $res = $ua->request($req); + #SSL certificate must be valid + #print Dumper($res); # Check the outcome of the response if ($res->is_success) { #print $res->content; diff --git a/copri4/main/src/Mod/Premain.pm b/copri4/main/src/Mod/Premain.pm index 03db9ac..c09e9fb 100755 --- a/copri4/main/src/Mod/Premain.pm +++ b/copri4/main/src/Mod/Premain.pm @@ -693,58 +693,7 @@ sub maininit(){ my $ctrel_ck; $ctrel_ck = $db->get_ctrel($table,$R::set_main_id,$lang,"",$R::set_content_id,$R::template_id); - if($varenv{orga} eq "dms" && $varenv{wwwhost} =~ /wogedms|fsdm/){ - my @set_main_ids = (); - my $set_main_ids = ""; - foreach(@keywords){ - if($_ =~ /set_main_id/){ - @set_main_ids = $q->param($_); - } - } - $set_main_ids = join(',',@set_main_ids); - - my $ct4rel_ck = $db->collect_ct4rel("$table","","$lang","","","","","$R::template_id","","","$R::set_content_id","main_id"); - my $ctrel; - foreach(@set_main_ids){ - if($_ != $ct4rel_ck->{$_}->{main_id}){ - #print "insert: $table,$_,$lang,$R::set_content_id,$R::template_id,$foreign_key
"; - $return_rel_id = $db->insert_relationlist($table,$_,$lang,$R::set_content_id,$R::template_id,$foreign_key) if($R::rel_edit =~ /relate_/ && $_); - $ctrel_ck = $db->get_ctrel($table,$_,$lang,"",$R::set_content_id,$R::template_id); - - if($ctrel_ck->{int02} == 1 && $return_rel_id && $R::template_id eq "202"){ - `sudo $varenv{basedir}/src/scripts/mailman_member.pl add $return_rel_id $varenv{syshost}`; - } - if( -d "$varenv{data}/$R::main_id/$R::set_content_id" ){ - #print "$varenv{data}/$R::main_id/$R::set_content_id --> $varenv{data}/$_/$R::set_content_id"; - rcopy("$varenv{data}/$R::main_id/$R::set_content_id","$varenv{data}/$_/$R::set_content_id"); - rcopy("$varenv{data}/$R::main_id-thumb/$R::set_content_id","$varenv{data}/$_-thumb/$R::set_content_id"); - rcopy("$varenv{data}/$R::main_id-resize/$R::set_content_id","$varenv{data}/$_-resize/$R::set_content_id"); - } - } - } - foreach my $id (keys(%$ct4rel_ck)){ - if($ct4rel_ck->{$id}->{main_id} && $set_main_ids !~ /$ct4rel_ck->{$id}->{main_id}/){ - #print "delete: $ct4rel_ck->{$id}->{main_id},$lang,$ct4rel_ck->{$id}->{rel_id}
"; - if($R::template_id eq "202"){ - `sudo $varenv{basedir}/src/scripts/mailman_member.pl remove $ct4rel_ck->{$id}->{rel_id} $varenv{syshost}`; - } - if($R::rel_edit =~ /relate_/ && $ct4rel_ck->{$id}->{c_id}){ - $db->delete_relation($ct4rel_ck->{$id}->{main_id},$lang,$ct4rel_ck->{$id}->{rel_id}); - if( -d "$varenv{data}/$ct4rel_ck->{$id}->{main_id}/$ct4rel_ck->{$id}->{c_id}" ){ - remove_tree("$varenv{data}/$ct4rel_ck->{$id}->{main_id}/$ct4rel_ck->{$id}->{c_id}"); - remove_tree("$varenv{data}/$ct4rel_ck->{$id}->{main_id}-thumb/$ct4rel_ck->{$id}->{c_id}"); - remove_tree("$varenv{data}/$ct4rel_ck->{$id}->{main_id}-resize/$ct4rel_ck->{$id}->{c_id}"); - } - } - } - } - if($users_dms->{mandant_id} && $users_dms->{mandant_id} < "200000"){ - my $uri_path = $dbt->recurse_node($dbh,$R::set_main_id); - print redirect("$varenv{wwwhost}/$uri_path?exit_box2=1\&rel_id=$return_rel_id\&return=$i_rows-$u_rows-$d_rows"); - exit 0; - } - - }elsif($varenv{orga} eq "dms"){ + if($varenv{orga} eq "dms"){ my @ck_ids = $R::rel_id; @ck_ids = split(/\s/,$R::ck_ids) if($R::ck_ids); foreach(@ck_ids){ @@ -1039,9 +988,6 @@ sub maininit(){ #delete Only relation ... without content if("$ib_key" eq "delete_rel4ct" && $R::main_id && $R::rel_id){ - if($varenv{wwwhost} =~ /wogedms|fsdm/){ - `sudo $varenv{basedir}/src/scripts/mailman_member.pl remove $R::rel_id $varenv{syshost}` if($R::rel_id); - } $d_rows += $db->delete_relation($R::main_id,$lang,$R::rel_id); $db->cleanup_users($users_dms->{u_id}) if($users_dms->{u_id}); diff --git a/copri4/main/src/Mod/Shareework.pm b/copri4/main/src/Mod/Shareework.pm index 80216f5..620b9bc 100755 --- a/copri4/main/src/Mod/Shareework.pm +++ b/copri4/main/src/Mod/Shareework.pm @@ -451,7 +451,9 @@ sub save_account(){ $u_rows = $dbt->update_one($dbh,$update_primary,"$_=$valxx"); }elsif($_ eq "ct_name" && $R::base_edit){ $u_rows = $dbt->update_one($dbh,$update_primary,"$_='$valxx'"); - #}elsif($_ !~ /ct_name|txt22|txt23|txt15/){ + }elsif($_ =~ /txt22|txt23/){ + $valxx =~ s/\s//g; + $u_rows = $dbt->update_one($dbh,$update_primary,"$_='$valxx'"); }elsif($_ !~ /ct_name|txt15/){ $u_rows = $dbt->update_one($dbh,$update_primary,"$_='$valxx'"); } diff --git a/copri4/main/src/Tpl/BaseEdit.pm b/copri4/main/src/Tpl/BaseEdit.pm index 4a90eaa..55cf7a8 100755 --- a/copri4/main/src/Tpl/BaseEdit.pm +++ b/copri4/main/src/Tpl/BaseEdit.pm @@ -353,7 +353,7 @@ EOF } print ""; - print $q->textarea(-class=>'autos',-style=>"border: 1px solid silver;",-name=>"$key",-default=>"$cttpos->{$key}", -override=>'1',-rows=>"3",-cols=>50),"\n"; + print $q->textarea(-class=>'etxt',-style=>"border: 1px solid silver;",-name=>"$key",-default=>"$cttpos->{$key}", -override=>'1',-rows=>"5",-cols=>50),"\n"; print "\n"; @@ -764,10 +764,10 @@ EOF } } elsif($key =~ /txt/ && $size =~ /area$/){ - my $h= 1;# if($size =~ /area(\d+)/); + my $h= 5;# if($size =~ /area(\d+)/); print $q->Tr(); print $q->td({-class=>'left_italic_cms',-colspan=>1},"$des"),"\n"; - print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-class=>"autos", -style=>'border: 1px solid silver;',-rows=>"$h",-cols=>'35em;', -name=>"$key", -override=>'1',-default=>"$ctrel->{$key}")),"\n"; + print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-class=>"etxt", -style=>'border: 1px solid silver;',-rows=>"$h",-cols=>'35em;', -name=>"$key", -override=>'1',-default=>"$ctrel->{$key}")),"\n"; } elsif($key =~ /txt/ && $size =~ /area(\d+)/){ #my $h= $1 if($size =~ /area(\d+)/); @@ -785,7 +785,7 @@ EOF $ctrel->{txt28} =~ s/\+/ /g; print $q->td({-style=>'border:1px solid silver;'},$ctrel->{txt28}),"\n"; }else{ - print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-id=>"$key", -class=>"autos", -style=>"border: 1px solid silver;$h $w", -name=>"$key", -override=>'1',-default=>"$ctrel->{$key}")),"\n"; + print $q->td({-class=>'content1_cms', -colspan=>'3'},$q->textarea(-id=>"$key", -class=>"etxt", -style=>"border: 1px solid silver;$h $w", -name=>"$key", -override=>'1',-default=>"$ctrel->{$key}")),"\n"; } } elsif($key =~ /txt02/ && $varenv{syshost} =~ /sharee/){ diff --git a/copri4/main/src/Tpl/TransPositionen.pm b/copri4/main/src/Tpl/TransPositionen.pm index 461a761..72038d6 100755 --- a/copri4/main/src/Tpl/TransPositionen.pm +++ b/copri4/main/src/Tpl/TransPositionen.pm @@ -312,7 +312,7 @@ EOF $q->textfield(-class=>'etxt',-name=>"e_mi",-default=>"$e_mi",-size=>"1",-maxlength=>2)),"\n"; } - print "
Interner Kommentar: $cttpos->{$id}->{txt23}\n" if($cttpos->{$id}->{txt23}); + print "
Bemerkung (Mietjournal) $cttpos->{$id}->{txt23}\n" if($cttpos->{$id}->{txt23}); print "\n"; }elsif($key =~ /txt/){ print $q->td({-class=>'element',-style=>"$txtstyle $set_style"},$q->textfield(-class=>'etxt',-style=>"$txtstyle",-name=>"col_$key",-default=>"$cttpos->{$id}->{$key}", -override=>'1',-size=>"$isize",-maxlength=>100)),"\n"; @@ -430,7 +430,7 @@ EOF print "
\n"; print $q->span({-style=>"$time_style"}, "Mietzeit: $start_time → $end_time"),"\n"; } - print "
Interner Kommentar: $cttpos->{$id}->{txt23}\n" if($cttpos->{$id}->{txt23}); + print "
Bemerkung (Mietjournal) $cttpos->{$id}->{txt23}\n" if($cttpos->{$id}->{txt23}); print "\n"; }elsif($key =~ /txt/){ print $q->td({-class=>'tdtxt'},"$cttpos->{$id}->{$key}"),"\n"; diff --git a/copri4/mkaccess.sh b/copri4/mkaccess.sh index 12d2a91..0bc1582 100755 --- a/copri4/mkaccess.sh +++ b/copri4/mkaccess.sh @@ -4,6 +4,10 @@ # SPDX-License-Identifier: AGPL-3.0-or-later # Copyright (c) Rainer Gümpelein, TeilRad GmbH +echo "YOur working directory:"; +pwd +echo "" + chgrp -R www-data * chmod go-w * chmod -R o-rwx * @@ -14,8 +18,8 @@ for i in $(find . -type d -and -name cache); do chmod -R ug+rwx $i;done for i in $(find . -type d -and -name pdf); do chmod -R ug+rwx $i;done for i in $(find . -type d -and -name xml); do chmod -R ug+rwx $i;done for i in $(find . -type d -and -name site); do chmod -R ug+rwx $i;done -for i in $(find . -type d -and -name apk); do chmod -R ug+rwx $i;done - +for i in $(find . -type d -and -name shareeconf); do chmod -R go-rwx $i;done +for i in $(find . -type d -and -name shareeconf); do chmod -R ug+rx $i;done for i in $(find . -type d -and -name sql); do chmod -R go-rwx $i;done for i in $(find . -type d -and -name src); do chmod -R go-w $i;done for i in $(find . -type d -and -name src); do chmod -R ug+x $i;done @@ -25,11 +29,41 @@ for i in $(find . -type d -and -name css); do chmod -R go-w $i;done for i in $(find . -type d -and -name js); do chmod -R go-w $i;done for i in $(find . -type f -and -iname README*); do chmod -R go-rwx $i;done for i in $(find . -type d -and -name docs); do chmod -R go-rwx $i;done -for i in $(find . -type f -and -name .htaccess); do chmod -R go-wx $i;done for i in $(find . -type f -and -name startup.pl); do chmod -R go-w $i;done for i in $(find . -type f -and -name robots.txt); do chmod -R go-wx $i;done for i in $(find . -type d -and -name cronjobs); do chmod -R g-w $i/*;done for i in $(find . -type d -and -name cronjobs); do chmod -R o+r $i/*;done for i in $(find . -type d -and -name cronjobs); do chown -R root:root $i/*;done +#do it only once on migration +if [ 1 == 2 ] +then +#delete jquery and bootstrap links +for i in $(find . -type l -and -name 'jquery*'); do rm $i;done +for i in $(find . -type l -and -name 'bootstrap*'); do rm $i;done + +mkdir -p /var/www/external +mv /etc/shareeconf/bootstrap-5.1.3-dist /var/www/external/. +mv /etc/shareeconf/bootstrap-5.0.2-dist /var/www/external/. +mv /etc/shareeconf/bootstrap-icons-1.8.1 /var/www/external/. +mv /etc/shareeconf/jquery-3.3.1.min.js /var/www/external/. +mv /etc/shareeconf/jquery-ui-1.12.1 /var/www/external/. + +#make new links for external bibliothecs +ln -s main/external /var/www/external + + +#linking operators to main/external +for i in $(find . -type d -and -name 'shareedms-*') + do ln -s ../main/external $i/external +done +for i in $(find . -type d -and -name 'shareeapp-*') + do ln -s ../main/external $i/external +done +for i in $(find . -type d -and -name 'shareeweb-*') + do ln -s ../main/external $i/external +done + +fi +#end diff --git a/copri4/shareeapp-operator/apache/shareeapp-operator.conf b/copri4/shareeapp-operator/apache/shareeapp-operator.conf index 1a7ebca..b29b3f0 100644 --- a/copri4/shareeapp-operator/apache/shareeapp-operator.conf +++ b/copri4/shareeapp-operator/apache/shareeapp-operator.conf @@ -48,10 +48,8 @@ LogLevel info ssl:warn CustomLog /var/log/apache2/shareeapp-operator-access.log combined ServerSignature Off -Include /etc/letsencrypt/options-ssl-apache.conf - -SSLCertificateFile /etc/letsencrypt/live/example.tld-0003/fullchain.pem -SSLCertificateKeyFile /etc/letsencrypt/live/example.tld-0003/privkey.pem + SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem + SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key @@ -97,9 +95,8 @@ SSLCertificateKeyFile /etc/letsencrypt/live/example.tld-0003/privkey.pem LogLevel info ssl:warn CustomLog /var/log/apache2/shareeapp-operator-access.log combined ServerSignature Off -Include /etc/letsencrypt/options-ssl-apache.conf -SSLCertificateFile /etc/letsencrypt/live/example.tld-0003/fullchain.pem -SSLCertificateKeyFile /etc/letsencrypt/live/example.tld-0003/privkey.pem + SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem + SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key diff --git a/copri4/shareeapp-operator/css/bootstrap-icons-1.8.1 b/copri4/shareeapp-operator/css/bootstrap-icons-1.8.1 deleted file mode 120000 index dcac63b..0000000 --- a/copri4/shareeapp-operator/css/bootstrap-icons-1.8.1 +++ /dev/null @@ -1 +0,0 @@ -/etc/shareeconf/bootstrap-icons-1.8.1 \ No newline at end of file diff --git a/copri4/shareeapp-operator/external b/copri4/shareeapp-operator/external new file mode 120000 index 0000000..36882c2 --- /dev/null +++ b/copri4/shareeapp-operator/external @@ -0,0 +1 @@ +../main/external \ No newline at end of file diff --git a/copri4/shareeapp-operator/src/Tpl/FormEdit.pm b/copri4/shareeapp-operator/src/Tpl/FormEdit.pm index f252956..3c94099 100755 --- a/copri4/shareeapp-operator/src/Tpl/FormEdit.pm +++ b/copri4/shareeapp-operator/src/Tpl/FormEdit.pm @@ -481,9 +481,9 @@ Nach Abschluss der Registrierung erhalten Sie sowohl auf die von Ihnen hinterleg if($i==1){ print $q->div({-id=>'Rechnungen',-style=>'font-weight:bold;'},"Ihre Rechnungen"),"\n"; - print $q->div({-style=>'padding:0.5em;'},"$dtext"),"\n"; + print $q->div({-style=>'padding:0.5em 0;'},"$dtext"),"\n"; } - print $q->div({-style=>'font-size:1em;padding:0.5em;border:0px solid #cccccc;'},$q->a({-href=>"$ctt_all->{$id}->{wwwhost}/FileOut?file=Rechnung-$ctt_all->{$id}->{operator}-$ctt_all->{$id}->{ct_name}.pdf&sessionid=$coo", -target=>"$webtarget" , -type=>'application/octet-stream', -style=>'text-decoration:underline;'}, $q->img({-src=>"$varenv->{metahost}/glyphicons/file-any.png", -style=>'width:30px;'}), "Rechnung $ctt_all->{$id}->{ct_name}.pdf"), "   ($invoice_time)"),"\n"; + print $q->div({-style=>'padding:0.7em 0;border:0px solid #cccccc;'},$q->a({-href=>"$ctt_all->{$id}->{wwwhost}/FileOut?file=Rechnung-$ctt_all->{$id}->{operator}-$ctt_all->{$id}->{ct_name}.pdf&sessionid=$coo", -target=>"$webtarget" , -type=>'application/octet-stream', -style=>'text-decoration:underline;'}, $q->span({-class=>"bi bi-file-earmark-pdf"}), "Rechnung $ctt_all->{$id}->{ct_name}.pdf"), "   ($invoice_time)"),"\n"; } } diff --git a/copri4/shareeapp-operator/src/Tpl/PayoneSEPA.pm b/copri4/shareeapp-operator/src/Tpl/PayoneSEPA.pm index a88fba6..006f94b 100755 --- a/copri4/shareeapp-operator/src/Tpl/PayoneSEPA.pm +++ b/copri4/shareeapp-operator/src/Tpl/PayoneSEPA.pm @@ -144,7 +144,7 @@ sub tpl(){ $dtext = "
(Der PDF download öffnet je nach System/Konfiguartion einen externen PDF-Viewer oder Webbrowser)"; } if( -f "$varenv->{basedir}/pdfinvoice/SEPA-Lastschriftmandat-$varenv->{praefix}-$ctadr->{ct_name}.pdf"){ - print $q->div({-style=>'padding:10px;margin:10px 0;'},$q->a({-href=>"$varenv->{wwwhost}/FileOut?file=SEPA-Lastschriftmandat-$varenv->{praefix}-$ctadr->{ct_name}.pdf&sessionid=$coo", -target=>"$webtarget" , -type=>'application/octet-stream', -style=>'text-decoration:underline;font-size:1.1em;'}, $q->img({-src=>"$varenv->{metahost}/glyphicons/file-any.png", -style=>'width:30px;'}), "SEPA-Lastschriftmandat.pdf"),"$dtext"),"\n"; + print $q->div({-style=>'padding:10px;margin:10px 0;'},$q->a({-href=>"$varenv->{wwwhost}/FileOut?file=SEPA-Lastschriftmandat-$varenv->{praefix}-$ctadr->{ct_name}.pdf&sessionid=$coo", -target=>"$webtarget" , -type=>'application/octet-stream', -style=>'text-decoration:underline;font-size:1.1em;'}, $q->span({-class=>"bi bi-file-earmark-pdf"}), "SEPA-Lastschriftmandat.pdf"),"$dtext"),"\n"; } }else{ print $q->div({-style=>'padding:10px;margin:10px 0;border:1px solid silver;color:#c83434;'},"Es gibt ein Problem! Das SEPA Mandat konnte nicht eingeholt werden. Bitte wenden Sie sich bei Bedarf an den unter \"Kontakt\" hinterlegten Support."),"\n"; diff --git a/copri4/shareeconf/examples/README b/copri4/shareeconf/examples/README old mode 100644 new mode 100755 diff --git a/copri4/shareeconf/examples/apikeys.cfg b/copri4/shareeconf/examples/apikeys.cfg old mode 100644 new mode 100755 diff --git a/copri4/shareeconf/examples/global.cfg b/copri4/shareeconf/examples/global.cfg old mode 100644 new mode 100755 index 74c32d9..613aac1 --- a/copri4/shareeconf/examples/global.cfg +++ b/copri4/shareeconf/examples/global.cfg @@ -29,8 +29,8 @@ port=5432 sslmode= options="" - user=[your-psql-user] - passwd=[your-psql-pw] + user=your_psql_user + passwd=your_psql_pw @@ -64,8 +64,8 @@ port=5432 sslmode= options="" - user=[your-psql-user] - passwd=[your-psql-pw] + user=your_psql_user + passwd=your_psql_pw @@ -97,8 +97,8 @@ port=5432 sslmode= options="" - user=[your-psql-user] - passwd=[your-psql-pw] + user=your_psql_user + passwd=your_psql_pw @@ -212,7 +212,7 @@ 2 = "lesen & schreiben" jsscript = "js/mobile_script.js" - style_bootstrap_icons = "css/bootstrap-icons-1.8.1/font/bootstrap-icons.css" + style_bootstrap_icons = "external/bootstrap-icons-1.8.1/font/bootstrap-icons.css" #sharee WebApp sepcific para @@ -229,8 +229,8 @@ local_style = "css/local_style2022-03-20.css" jquery = "" - js_bootstrap = "js/bootstrap-5.1.3-dist/js/bootstrap.min.js" - style_bootstrap = "js/bootstrap-5.1.3-dist/css/bootstrap.css" + js_bootstrap = "external/bootstrap-5.1.3-dist/js/bootstrap.min.js" + style_bootstrap = "external/bootstrap-5.1.3-dist/css/bootstrap.css" #sharee DMS/COPRI specific para @@ -255,12 +255,12 @@ order_state = "|angerufen|eMail gesendet|in Arbeit|cronjob fail" local_style = "css/local_style20221205.css" - jquery = "js/jquery-3.3.1.min.js" - jquery_ui = "js/jquery-ui-1.12.1/jquery-ui.min.js" - style_jquery_ui = "js/jquery-ui-1.12.1/jquery-ui.min.css" - js_bootstrap = "js/bootstrap-5.0.2-dist/js/bootstrap.min.js" - style_bootstrap = "js/bootstrap-5.0.2-dist/css/bootstrap.min.css" - mod_active = "Waren|Faktur|Karte|Kunden|Mietjournal|Alarmjournal|Einstellung" + jquery = "external/jquery-3.3.1.min.js" + jquery_ui = "external/jquery-ui-1.12.1/jquery-ui.min.js" + style_jquery_ui = "external/jquery-ui-1.12.1/jquery-ui.min.css" + js_bootstrap = "external/bootstrap-5.0.2-dist/js/bootstrap.min.js" + style_bootstrap = "external/bootstrap-5.0.2-dist/css/bootstrap.min.css" + mod_active = "Waren|Faktura|Karte|Kunden|Mietjournal|Alarmjournal|Einstellung" modes = "login|logout|logout_sharee|user|manager|supervisor|admin|maintainer" diff --git a/copri4/shareeconf/examples/mailx.cfg b/copri4/shareeconf/examples/mailx.cfg old mode 100644 new mode 100755 diff --git a/copri4/shareeconf/examples/sharee_operator.sql.gz b/copri4/shareeconf/examples/sharee_operator.sql.gz old mode 100644 new mode 100755 index b24abb5111ee6bdf1ec9c0ae72148fa1425c77db..c513e3ef9c609bf42c2f80ec0a16cd0d1177f808 GIT binary patch literal 16199 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%0AuEtG&M>fiI5#rRg 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 h)UpEt86tMA8T1T$e} @@ -94,7 +92,8 @@ RewriteEngine On - RedirectMatch ^/$ /DMS/Mietjournal + RedirectMatch ^/$ /DMS/Mietjournal + RedirectMatch ^/DMS$ /DMS/Mietjournal SSLProxyEngine On RewriteCond %{REQUEST_URI} ^/(site|img|data|css|js|jquery) RewriteRule ^(.*)$ https://shareedms-operator1.example.tld/$1 [P,L] @@ -104,10 +103,8 @@ LogLevel info ssl:warn CustomLog /var/log/apache2/shareedms-operator-access.log combined ServerSignature Off - Include /etc/letsencrypt/options-ssl-apache.conf - - SSLCertificateFile /etc/letsencrypt/live/example.tld-0003/fullchain.pem - SSLCertificateKeyFile /etc/letsencrypt/live/example.tld-0003/privkey.pem + SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem + SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key diff --git a/copri4/shareedms-operator/external b/copri4/shareedms-operator/external new file mode 120000 index 0000000..36882c2 --- /dev/null +++ b/copri4/shareedms-operator/external @@ -0,0 +1 @@ +../main/external \ No newline at end of file diff --git a/copri4/shareedms-operator/src/Lib/Config.pm b/copri4/shareedms-operator/src/Lib/Config.pm index bdeb461..152eceb 100755 --- a/copri4/shareedms-operator/src/Lib/Config.pm +++ b/copri4/shareedms-operator/src/Lib/Config.pm @@ -70,7 +70,6 @@ sub envonline(){ head_logo => "$metahost/img/sharee_bike_Logo.jpg", barcode => "", limit => "200", - waren_main_id => $globalconf{shareedms_conf}->{waren}, Zahlungsweise => "SEPA-Lastschrift (payone)|Kreditkarte (payone)|Zahlungseingang (payone txid)|Abbuchung|Bar|EC-Karte|Überweisung|Zahlungsausfall", order_state => "|angerufen|eMail gesendet|in Arbeit|an FiBu delegiert|txid renewed|cronjob fail|payone Mahnung|COPRI Mahnung", 'Ziel Datei' => "privacy.html|agb.html|impress.html|tariff_info.html|bike_info.html", diff --git a/copri4/shareeweb-project/apache/shareeweb-operator.conf b/copri4/shareeweb-project/apache/shareeweb-operator.conf index d66c66d..ac597aa 100644 --- a/copri4/shareeweb-project/apache/shareeweb-operator.conf +++ b/copri4/shareeweb-project/apache/shareeweb-operator.conf @@ -28,7 +28,7 @@ - Header set Access-Control-Allow-Origin "example.tld" + Header set Access-Control-Allow-Origin "*" @@ -49,10 +49,8 @@ LogLevel info ssl:warn CustomLog /var/log/apache2/shareeweb-project-access.log combined ServerSignature Off -Include /etc/letsencrypt/options-ssl-apache.conf - -SSLCertificateFile /etc/letsencrypt/live/example.tld-0003/fullchain.pem -SSLCertificateKeyFile /etc/letsencrypt/live/example.tld-0003/privkey.pem + SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem + SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key @@ -105,9 +103,8 @@ SSLCertificateKeyFile /etc/letsencrypt/live/example.tld-0003/privkey.pem LogLevel info ssl:warn CustomLog /var/log/apache2/shareeweb-project-access.log combined ServerSignature Off -Include /etc/letsencrypt/options-ssl-apache.conf -SSLCertificateFile /etc/letsencrypt/live/example.tld-0003/fullchain.pem -SSLCertificateKeyFile /etc/letsencrypt/live/example.tld-0003/privkey.pem + SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem + SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key diff --git a/copri4/shareeweb-project/external b/copri4/shareeweb-project/external new file mode 120000 index 0000000..36882c2 --- /dev/null +++ b/copri4/shareeweb-project/external @@ -0,0 +1 @@ +../main/external \ No newline at end of file