From: Kilian Saffran Date: Fri, 14 Jun 2019 12:41:33 +0000 (+0200) Subject: annuaire field and file upload X-Git-Url: http://cloud.dks.lu/git/?a=commitdiff_plain;h=3a9a53ea42c4f890957f564a343898cb4af97107;p=juridig_lu.git annuaire field and file upload --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f01ead1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +backoffice/api/reports/* +backoffice/api/tmp/* \ No newline at end of file diff --git a/backoffice/api/lib/dkssavefile.pm b/backoffice/api/lib/dkssavefile.pm new file mode 100644 index 0000000..7bb20fd --- /dev/null +++ b/backoffice/api/lib/dkssavefile.pm @@ -0,0 +1,46 @@ +package dkssavefile; + + +use strict; +use MIME::Base64; +use MIME::Types; +use URI; +use Data::Dumper; +use File::Path qw(make_path); + +sub new { + my $class = shift; + my $self = bless {}, $class; + return $self; +} + +sub saveb64toFile(){ + my $self = shift; + # my $fd = shift; + my $filename = shift; + my $sitepath = shift; + my $filepath = shift; + my $data = shift; + my $ds = URI->new($data); + my $mimetype= $ds->media_type(); + my $mt = MIME::Types->new(); + my $sfx = $mt->type($mimetype); + my $ext = $sfx->{MT_extensions}; + my $nfsfx = ""; + if (scalar(@$ext) > 0){ + $nfsfx = @$ext[0]; + } + if (! -d $sitepath.'/'.$filepath){ + make_path($sitepath.'/'.$filepath); + } + open (NF,">".$sitepath.'/'.$filepath.'/'.$filename.'.'.$nfsfx); + binmode(1); + print NF $ds->data(); + close(NF); + if (-e $sitepath.'/'.$filepath.'/'.$filename.'.'.$nfsfx){ + return $filepath.'/'.$filename.'.'.$nfsfx; + } + return ""; +} + +1; \ No newline at end of file diff --git a/backoffice/api/process.cgi b/backoffice/api/process.cgi index 0cb790a..b9148c4 100644 --- a/backoffice/api/process.cgi +++ b/backoffice/api/process.cgi @@ -2,7 +2,7 @@ use strict; # use lib ('/home/kilian/perl5/lib/perl5'); -use lib ('./lib/perl5'); +#use lib ('./lib/perl5'); use lib ('./lib'); use CGI; use CGI::Cookie; @@ -14,6 +14,7 @@ use dksconfig qw/$sitecfg/; use dksdb; use session; use sendemail; +use dkssavefile; my $cgi = new CGI(); my $scriptpath = $cgi->url(-absolute => 1); my $p = (); @@ -31,6 +32,7 @@ if ($sess == undef){ print JSON::PP::encode_json($html); exit(0); } +$sitecfg->{sitepath} = dirname(substr($sitecfg->{basepath},0,index($sitecfg->{basepath},'api')-1)); # $html->{p} = $p; # $html->{sess} =$sess; #my $datapath = $ENV{"DOCUMENT_ROOT"}.dirname(dirname($scriptpath)).'/data/'; @@ -74,6 +76,7 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){ elsif ($p->{fn} eq "savefield"){ # $html->{p} = $p; + my $sf = dkssavefile->new(); $html->{result}->{ident} = $p->{ident}; delete $p->{ident}; delete $p->{fn}; @@ -81,11 +84,27 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){ my $retid=undef; my $type = "upd"; foreach my $px (keys(%{$p})){ - $html->{result}->{datafield} = $px; + + #$p->{$px} = $db->securetext($p->{$px}); if (($px =~ /\_id$/) && ($p->{$px} eq "")){ $type = "ins"; - + } + if ($p->{$px} =~ /^data:.+;base64,/){ + # $html->{result}->{isfile} = 1; + + my @spl = split(/_/,$px); + # $html->{result}->{datafield}->{$px} = "1"; + my $fpath = $px; + $fpath =~ s/_/\//g; + $html->{result}->{'ident_'.$spl[0].'_id'} = $p->{'ident_'.$spl[0].'_id'}; + if (exists($p->{'ident_'.$spl[0].'_id'}) && ($p->{'ident'.'_'.$spl[0].'_id'} ne "")){ + $p->{$px} = $sf->saveb64toFile($p->{'ident'.'_'.$spl[0].'_id'}, + $ENV{DOCUMENT_ROOT}.$sitecfg->{sitepath}, + 'img/'.$fpath, + $p->{$px} + ); + } } } my @sql = (); @@ -105,6 +124,7 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){ } $html->{result}->{id} = $retid->{0}; + # $html->{result}->{sitecfg} = $sitecfg; #$p->{table},#$p->{field},$p->{value},$p->{id},$p->{type} } elsif ($p->{fn} eq "saveform"){ diff --git a/backoffice/api/reports/DKS_JD190517-000002.pdf b/backoffice/api/reports/DKS_JD190517-000002.pdf deleted file mode 100644 index 3969299..0000000 Binary files a/backoffice/api/reports/DKS_JD190517-000002.pdf and /dev/null differ diff --git a/backoffice/api/reports/DKS_JD201905-000020.pdf b/backoffice/api/reports/DKS_JD201905-000020.pdf deleted file mode 100644 index d3ed371..0000000 Binary files a/backoffice/api/reports/DKS_JD201905-000020.pdf and /dev/null differ diff --git a/backoffice/api/sql.log b/backoffice/api/sql.log new file mode 100644 index 0000000..9f8e00c --- /dev/null +++ b/backoffice/api/sql.log @@ -0,0 +1,96 @@ + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET council='["Luxembourg","Diekirch"]' WHERE ; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET council='["Luxembourg","Diekirch"]' WHERE ; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET company='DKSA' WHERE id='102' AND id_user='4'; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET phone=null WHERE id='102' AND id_user='4'; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET phone=null WHERE id='102' AND id_user='4'; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET title='Avocat à la Cour' WHERE ; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET company='DKSA' WHERE id='102' AND id_user='4'; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET council='["Luxembourg","Diekirch"]' WHERE id_user='4' AND id='102'; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET council='[]' WHERE id='102' AND id_user='4'; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET council='["Luxembourg"]' WHERE id='102' AND id_user='4'; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET title='Avocat exerçant sous son titre professionnel d''origine' WHERE id='102' AND id_user='4'; +== + +== +select * from get_session('$UhZ$6nSuRzqT83GXGMrrua?jeTiu2YsW6ITC@v;','::1','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') +== + +== +UPDATE lawyercatalog SET council='["Luxembourg","Diekirch"]' WHERE id_user='4' AND id='102'; +== diff --git a/backoffice/api/test.jpeg b/backoffice/api/test.jpeg new file mode 100644 index 0000000..5694063 Binary files /dev/null and b/backoffice/api/test.jpeg differ diff --git a/backoffice/api/test.png b/backoffice/api/test.png new file mode 100644 index 0000000..19ef9d1 Binary files /dev/null and b/backoffice/api/test.png differ diff --git a/backoffice/api/testfiledata.pl b/backoffice/api/testfiledata.pl new file mode 100644 index 0000000..7b8daae --- /dev/null +++ b/backoffice/api/testfiledata.pl @@ -0,0 +1,9 @@ +#!/home/kilian/perl5/perlbrew/perls/perl-5.24.1/bin/perl + +use strict; +# use lib ('/home/kilian/perl5/lib/perl5'); +use lib ('./lib'); +use dkssavefile; + +my $sf = dkssavefile->new(); +$sf->saveb64toFile('test','pathtofile','data:image/png;base64,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'); \ No newline at end of file diff --git a/backoffice/css/admin.css b/backoffice/css/admin.css new file mode 100644 index 0000000..e69de29 diff --git a/backoffice/css/module.css b/backoffice/css/module.css new file mode 100644 index 0000000..26ef47a --- /dev/null +++ b/backoffice/css/module.css @@ -0,0 +1,16 @@ +label { + font-weight: bold; +} + +label.custom-control-label { + font-weight: normal; +} + +img.preview { + width: 150px; + max-width: 150px; + max-height: 150px; + border: 1px solid #ced4da; + border-radius: .25rem; + padding: .375rem .375rem; +} \ No newline at end of file diff --git a/backoffice/index.cgi b/backoffice/index.cgi index 323e52e..e3f7461 100644 --- a/backoffice/index.cgi +++ b/backoffice/index.cgi @@ -25,7 +25,7 @@ my $page = "index.tt"; $vars->{filepath} = substr($cgi->url({-absolute=>1}),length($vars->{basepath})+1); $vars->{baseurl} = $cgi->url({-base=>1}).$vars->{basepath}; - +$vars->{siteurl} = $cgi->url({-base=>1}).dirname($vars->{basepath}); if ($vars->{filepath} ne ""){ $page = $vars->{filepath}; $page =~ s/html$/tt/; diff --git a/backoffice/js/fieldsave.js b/backoffice/js/fieldsave.js index 134b272..1b7ad55 100644 --- a/backoffice/js/fieldsave.js +++ b/backoffice/js/fieldsave.js @@ -1,13 +1,30 @@ function savefield(objid){ - console.log("save"); + //console.log("save"); var field = {"ident":objid}; if ($("#" + objid).tagName == 'TEXTAREA'){ field[$("#" +objid).attr('name')] = $("#" + objid).html(); } else if ($("#" + objid)[0].tagName == "SELECT"){ - field[$("#" +objid).attr('name')] = $("#" + objid + ":selected").val(); + //console.log("is a select field"); + console.log($("#" + objid).selectpicker()); + // if ($("#" + objid)[0].dataset.select2Id){ + // // console.log("is a select2 field!\n"); + // console.log($("#" +objid).attr('name') + "-> " + $("#" +objid).val() ); + // field[$("#" +objid).attr('name')] = $("#" +objid).val(); + // } + // else { + field[$("#" +objid).attr('name')] = $("#" + objid).val(); + console.log(field[$("#" +objid).attr('name')]); + + // } + // }if ($("#" + objid)[0].select2Id){ + // console.log("is a select2 field!\n"); + // } else { + // field[$("#" +objid).attr('name')] = $("#" + objid + ":selected").val(); + // } + } else if (($("#" + objid)[0].type == "checkbox")){ if ($("#" +objid).prop('checked')){ field[$("#" +objid).attr('name')] = $("#" + objid).val(); @@ -25,22 +42,26 @@ function savefield(objid){ } var bident = false; for (var d in $("#" + objid).data()){ - // if (d.startsWith("ident_")){ + //if (typeof $("#" + objid).data(d) == "string"){ + if ((d != "select2Id") && (d != "select2") && (d != "selectpicker")){ + + // if (d.startsWith("ident_")){ //console.log(d); field[d] = $("#" + objid).data(d); bident = true; - // } + } } - console.log(bident); + //console.log(bident); if (bident == false){ var frmid=$("#" + objid)[0].form.id; for (var idv in $("#" + frmid).data()){ - field[idv] = $("#" + frmid).data(idv); + if ((idv != "select2Id") && (idv != "select2") && (idv != "selectpicker")){ + field[idv] = $("#" + frmid).data(idv); + } } } field["fn"] = "savefield"; - console.log(field); - + //console.log(field); process_data(field,fieldsaved); return false; } diff --git a/backoffice/tmpl/module/annuaire/css.tt b/backoffice/tmpl/module/annuaire/css.tt index c7bf5f1..c7b5070 100644 --- a/backoffice/tmpl/module/annuaire/css.tt +++ b/backoffice/tmpl/module/annuaire/css.tt @@ -1,3 +1,2 @@ - - \ No newline at end of file + diff --git a/backoffice/tmpl/module/annuaire/index.js b/backoffice/tmpl/module/annuaire/index.js index 18a0f03..42c13dc 100644 --- a/backoffice/tmpl/module/annuaire/index.js +++ b/backoffice/tmpl/module/annuaire/index.js @@ -4,7 +4,8 @@ var cropper; function initpage(){ - $("select").select2(); + $("select").selectpicker(); + tinymce.init({ selector: '.richeditarea', branding: false, @@ -27,8 +28,16 @@ tinymce.init({ }); } +$('select').on('hidden.bs.select', function (event) { + console.log(event); + console.log(savefield); + console.log("ID:" + event.currentTarget.id); + savefield(event.currentTarget.id); +}); + + -$("input,textarea,select").on('blur',function(event){ +$("input,textarea").on('blur',function(event){ console.log(event); //console.log(event.currentTarget.tagName); //console.log(event.currentTarget.type); @@ -39,13 +48,15 @@ $("input,textarea,select").on('blur',function(event){ }); -function CropImageDlg(obj){ - // console.log(obj); +function CropImageDlg(objid){ + console.log("Crop Object ID:"+ objid); + var obj = document.getElementById("files_" + objid); + console.log(obj.files); var file = obj.files[0]; // console.log(file); var fileName = file.name; // console.log(file.type); - $(obj).next('.custom-file-label').html(file.name); + $('.label-files_'+ objid).html(file.name); if (!file.type.match('image.*')) { console.log("is not an image"); return false; @@ -57,6 +68,7 @@ function CropImageDlg(obj){ }; })(file); reader.readAsDataURL(file); + $('#cropdata_field_id').val(objid); $("#cropimg").modal('show'); return false; } @@ -77,24 +89,29 @@ $('#cropimg').on('shown.bs.modal', function () { cropBoxData = cropper.getCropBoxData(); canvasData = cropper.getCanvasData(); var data = cropper.getCroppedCanvas().toDataURL(); - $("#preview").prop("src",data); - $("#photo").val(data); - savefield('photo'); + var fieldid=$('#cropdata_field_id').val(); + console.log("FieldID:" + fieldid); + $("#preview_" + fieldid).prop("src",data); + $("#" + fieldid).val(data); + savefield(fieldid); //console.log(cropBoxData); //console.log(canvasData); + $('#cropdata_field_id').val(""); cropper.destroy(); }); function removephoto(objid,defaultimg){ - $("#preview").prop("src",defaultimg); + $("#preview_" + objid).prop("src",defaultimg); $("#" + objid).val(""); savefield(objid); return false; } -function LoadCropper(){ - // console.log("Preview load cropper!"); - var objf = document.getElementById('files'); +function LoadCropper(objid){ + console.log("Preview load cropper!" + objid); + var objf = document.getElementById('files_' + objid); + $('#cropdata_field_id').val(objid); + if (objf.files.length > 0){ CropImageDlg(objf); } diff --git a/backoffice/tmpl/module/annuaire/index.tt b/backoffice/tmpl/module/annuaire/index.tt index 14794a0..cf852a7 100644 --- a/backoffice/tmpl/module/annuaire/index.tt +++ b/backoffice/tmpl/module/annuaire/index.tt @@ -1,9 +1,12 @@ -[% usercat = dksdb.prepare("select * from lawyercatalog where id_user=? LIMIT 1;") %] +[% usercat = dksdb.prepare("select id, id_user, surname, prename, company, email, phone, address, zip, city, description, photo, price, link, court, title, country, languages,council,website,logo from lawyercatalog where id_user=? LIMIT 1;") %] [% lawyerspecs = dksdb.prepare("select lca.id,lca.selection,ca.id as id_category,category from categories ca left join lawyercategories lca on (ca.id=lca.id_category and lca.id_catalog=?) where ca.usertype='avocat' order by category asc;") %] [% FOREACH cat = usercat.execute(session.id) %]