Service-Config refactoring

This commit is contained in:
ragu 2022-05-09 12:45:01 +02:00
parent 0f89b9e836
commit 0163c06893
15 changed files with 149 additions and 107 deletions

View file

@ -876,15 +876,12 @@ sub booking_request(){
my $sig_book = shift || {};
my $dbh = "";
my $bike_id = "";
$bike_id = $1 if($bike_id =~ /(\d+)$/);
my $pos_id="";
my $now_dt = strftime "%Y-%m-%d %H:%M", localtime;
my $response_state = "OK";
my $response_text = "";
$bw->log("booking_request ct_bike $ct_bike->{barcode}, auth $auth->{c_id}, tarif $ct_tariff->{barcode}, requested bike:",$bike,"");
$bw->log("booking_request bike $bike, auth $auth->{c_id}, tarif $ct_tariff->{barcode}, requested bike:",$bike,"");
my $update_adr = {
table => "contentadr",
@ -904,14 +901,6 @@ sub booking_request(){
close_time => "is::null",
};
my $booking_pos = {
table => "contenttranspos",
fetch => "one",
barcode => "$bike_id",
int10 => "IN::('2','3')",
ca_id => "$auth->{c_id}",
};
#if bike and tariff
if($ct_bike->{barcode} && $ct_tariff->{barcode}){
@ -1020,6 +1009,7 @@ sub booking_update(){
$bike_id =~ s/S[1-9]X/SX/;
$bike_id = $1 if($bike_id =~ /(\d+)/);
my $state_key = 0;
my $state_text = "";
while (my ($key, $value) = each %{ $dbt->{copri_conf}->{bike_state} }) {
@ -1064,6 +1054,7 @@ sub booking_update(){
my $record_cc = $dbt->fetch_record($dbh,$pref_cc) if($q->param('bike'));
$bw->log("booking_update bike to state $bike $state ($state_key) $lock_state, auth $auth->{c_id}, bike:",$bike,"");
my $update_cc = {
table => "content",
@ -1108,7 +1099,8 @@ sub booking_update(){
#2020-09-24 requested will be all done by net_booking
#6 = "canceled"|3 = "occupied"|1 = "available"
if($state && $state =~ /$dbt->{copri_conf}->{bike_state}->{6}|$dbt->{copri_conf}->{bike_state}->{3}|$dbt->{copri_conf}->{bike_state}->{1}/ && $record_pos->{cc_id} && $record_pos->{cc_id} > 0){
#if($state && $state =~ /$dbt->{copri_conf}->{bike_state}->{6}|$dbt->{copri_conf}->{bike_state}->{3}|$dbt->{copri_conf}->{bike_state}->{1}/ && $record_pos->{cc_id} && $record_pos->{cc_id} > 0){
if($state_key && ($state_key == 6 || $state_key == 3 || $state_key == 1) && $record_pos->{cc_id} && $record_pos->{cc_id} > 0){
#set rent state if lock_system 2=Ilockit || 3=sigo
if($record_pos->{int11} && ($record_pos->{int11} == 2 || $record_pos->{int11} == 3)){

View file

@ -65,6 +65,12 @@ sub handler {
$bw->log("APIxmlserver request:\n--> user-agent '$user_agent'",$q,"");
print $q->header(-type => "application/xml", -charset => "utf-8", -'Access-Control-Allow-Origin' => "*");
open(FILE,">>$varenv{logdir}/APIxmlserver.log") if($debug);
print FILE "\n*** $now_dt user-agent: '$user_agent' to syshost: $varenv{syshost}\n" if($debug);
print FILE "<=== q dump\n " . Dumper($q) . "\n" if($debug);
print FILE "<=== DUMP postdata:\n " . Dumper($q->param('POSTDATA')) . "\n" if($debug);
#print "Content-type: text/xml\n\n";
if($q->param('POSTDATA')){
my $xmlref = {};
@ -111,6 +117,8 @@ sub handler {
my $c_id = "";
$bw->log("$xmlref->{todo}",$xmlref,"");
print FILE "xmlref\n " . Dumper($xmlref) . "\n" if($debug);
if($xmlref->{userID} && $xmlref->{emailID} && $xmlref->{pwID}){
if($xmlref->{todo} =~ /add_LVuser|update_LVuser/ && !$record->{c_id} && !$record_e->{c_id}){
@ -152,7 +160,7 @@ sub handler {
table => "contentadr",
mtime => 'now()',
owner => "$owner",
int01 => "$xmlref->{userID}"
int01 => $q->escapeHTML($xmlref->{userID}),
};
my $rows = $dbt->update_record($dbh,$update,$record);
@ -208,6 +216,7 @@ sub handler {
};
$bw->log("APIxmlserver update to available",$update_cc,"");
print FILE "update_cc\n " . Dumper($update_cc) . "\n" if($debug);
$dbt->update_record($dbh,$update_cc,$record_cc) if($record_cc->{c_id});
}elsif(ref($xmlref) eq "HASH" && $xmlref->{todo} && $xmlref->{todo} eq "requested" && $xmlref->{bikeID} =~ /\d+/){
@ -229,6 +238,7 @@ sub handler {
print "<text>NO DATA</text>";
}
close(FILE) if($debug);
return Apache2::Const::OK;
}
1;

View file

@ -43,7 +43,7 @@ sub ibuttons(){
'new_relation' => 'NEUES Menue anlegen',
'new_relation4sub' => 'NEUES Sub-Menue anlegen',
'save_content' => 'Speichern',
'save_tver' => 'Kurs speichern',
'save_ctuser' => 'Save',
'save_nel' => 'Nachricht speichern',
'context_copy_content' => 'Kopie im Kontext der internen Barcode Nummer',
'copy_content' => 'Kopie fuer neuen Datensatz',

View file

@ -1007,8 +1007,6 @@ sub insert_contentoid {
$values .= "'$insert->{$key}',";
}
}
#elsif($key =~ /contentadr_id|cc_id|ct_id|barcode|txt|int|time|owner/){
#2021-03-04 changed with c_id, ct_name and only insert if value
elsif($key =~ /^c_id|ct_name|barcode|txt|int|time|owner/ && ($insert->{$key} || looks_like_number($insert->{$key}))){
$columns .= "$key,";
if($key =~ /_id|barcode|int|owner/ && !looks_like_number($insert->{$key})){
@ -1035,12 +1033,12 @@ sub insert_contentoid {
my $c_id = $sth->fetchrow_array();
$bw->log("insert_contentoid $source c_id: $c_id",$sql,"") if($debug);
if($insert->{table} =~ /content$|contentadr|contenttrans$|contenttver$|contentusers$/ && $insert->{main_id} && $insert->{template_id}){
if($insert->{table} =~ /content$|contentadr|contenttrans$|contenttver$|contentuser$/ && $insert->{main_id} && $insert->{template_id}){
my $foreignkey = "";
$foreignkey = "ca_id" if($insert->{table} eq "contentadr");
$foreignkey = "cc_id" if($insert->{table} eq "content");
$foreignkey = "ct_id" if($insert->{table} eq "contenttrans");
$foreignkey = "cu_id" if($insert->{table} eq "contentusers");
$foreignkey = "cu_id" if($insert->{table} eq "contentuser");
$foreignkey = "cv_id" if($insert->{table} eq "contenttver");
my $sql_rel = "INSERT INTO relation (main_id,content_id,template_id,change,$foreignkey) VALUES('$insert->{main_id}','$c_id','$insert->{template_id}','now()','$c_id')";
my $sth3 = $dbh->prepare($sql_rel);

View file

@ -88,7 +88,7 @@ sub handler {
}elsif($netloc =~ /lastenradbayern\.net/){
$varenv{syshost} = "shareeweb-bayern";
}
die "no configuration available" if(!$varenv{syshost});
exit 0 if(!$varenv{syshost});
if($varenv{orga} ne "dms" && $path =~ /DMS|Waren|Kunden\/|Einstellung|journal|Faktur/i){
@ -352,6 +352,9 @@ sub handler {
$return = $pl->delete_relation($R::main_id,$users_dms->{u_id});
}elsif($R::rel_edit eq "new_relation" && $R::main_id && $R::main_id >= 200000){
$return = $pl->new_relation($R::main_id,$users_dms->{u_id});
}elsif($R::rel_edit eq "save_ctuser" && $R::main_id && $R::main_id >= 200000){
$return = "failure::TODO Service-Config save";
#$return = $pl->save_ctuser($users_dms);
}elsif($R::rel_edit && $R::main_id && $R::main_id >= 200000){
$return = $pm->maininit($users_dms);
}
@ -738,12 +741,17 @@ sub handler {
});";
}
my $favicon = "css/favicon.ico";
my $base_uri = "true";
my $title = "";
$title = $dbt->{primary}->{$varenv{dbname}}->{title} if($dbt->{primary}->{$varenv{dbname}}->{title});
$title = $dbt->{operator}->{$varenv{dbname}}->{title} if($dbt->{operator}->{$varenv{dbname}}->{title});
$title = $dbt->{website}->{$varenv{syshost}}->{title} if($dbt->{website}->{$varenv{syshost}}->{title});
if($dbt->{website}->{$varenv{syshost}}->{title}){
$title = $dbt->{website}->{$varenv{syshost}}->{title};
$favicon = "data/favicon.ico";
}
$title .= " devel" if($dbt->{copri_conf}->{stage} eq "test");
my $html5 = $q->start_html(-title=>"$title",
-lang=>'de',
-onload=>"$onload",
@ -755,7 +763,7 @@ sub handler {
Link({
-rel=>'shortcut icon',
-type=>'image/x-icon',
-href=>"$varenv{metahost}/css/favicon.ico"
-href=>"$varenv{metahost}/$favicon"
})
],
-meta=>{

View file

@ -32,20 +32,34 @@ my $bw = new Basework;
sub handler {
my $r = shift;
my $q = new CGI;
$q->import_names('R');
my $dbt = new DBtank;
my $apif = new APIfunc;
my $cf = new Config;
my %varenv = $cf->envonline();
my $coo = $q->cookie('domcookie') || $q->param('sessionid') || "";
my $coo = $q->cookie('domcookie') || $R::sessionid || "";
my $users_sharee = { c_id => 0 };
my $api_return = { authcookie => '' };
($api_return,$users_sharee) = $apif->auth_verify($q,$coo,"");
if($dbt->{website}->{$varenv{syshost}}->{merchant_id}){
$api_return->{authcookie} = $dbt->{website}->{$varenv{syshost}}->{merchant_id} if(!$api_return->{authcookie});
}elsif($dbt->{operator}->{$varenv{dbname}}->{merchant_id}){
$api_return->{authcookie} = $dbt->{operator}->{$varenv{dbname}}->{merchant_id} if(!$api_return->{authcookie});
}elsif($dbt->{primary}->{$varenv{dbname}}->{merchant_id}){
$api_return->{authcookie} = $dbt->{primary}->{$varenv{dbname}}->{merchant_id} if(!$api_return->{authcookie});
}
$users_sharee->{c_id} = "0" if(!$users_sharee->{c_id});
$bw->log("kmlGenerator handler with api_return: ",$api_return,"");
my $kmlfile = kmlGenerator($api_return,\%varenv,$users_sharee);
#print out test with kml file
if(1==2){
#print $q->header();
#print out kml file, used by Karte.pm js maps
if(1==1){
print $q->header(-type => "application/vnd.google-earth.kml+xml", -charset=>"utf-8");
if (open(my $fh, '<', "$varenv{basedir}/xml/$kmlfile")) {
@ -68,12 +82,9 @@ sub kmlGenerator {
my $dbt = new DBtank;
my $json = JSON->new->allow_nonref;
my $cf = new Config;
#my $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
my $lang="de";
my $dbh = "";
#my $netloc = $q->url(-base=>1);
#print "kmlGenerator accessed by netlocation: " . $netloc;
my $project = "all";
$project = $dbt->{website}->{$varenv->{syshost}}->{project} if($dbt->{website}->{$varenv->{syshost}}->{project});
$project = $dbt->{operator}->{$varenv->{dbname}}->{project} if($dbt->{operator}->{$varenv->{dbname}}->{project});

View file

@ -205,7 +205,7 @@ sub new_relation {
my $new_submain_id = $dbt->get_freenode($dbh,$prefix_id);
my $new_subtemplate_id = $dbt->get_freetpl($dbh,"401","499");
my $ret_tpl_id = $dbt->copy_template($dbh,"401",$new_subtemplate_id,$owner);
my $ret_tpl_id = $dbt->copy_template($dbh,"400",$new_subtemplate_id,$owner);
my $insert_sub = {
main_id => $new_submain_id,

View file

@ -424,7 +424,7 @@ print ATTR "next: $next\n" if($debug);
#if($ib_key =~ /save/ && $R::c_id && $R::rel_id){
my $c_id = $R::c_id || $c_idnew;#also over new
my $rel_id = $R::rel_id || $rel_idnew;#also over new
if(($ib_key =~ /save_content|save_user|save_adr|save_nel|newsletter_mailman/) || ($ib_key =~ /new_content/ && $R::search_pattern) && $c_id){
if(($ib_key =~ /save_content|save_ctuser|save_adr/) || ($ib_key =~ /new_content/ && $R::search_pattern) && $c_id){
if($ib_key eq "save_user"){
$table = "contentuser";

View file

@ -51,6 +51,7 @@ sub tpl(){
#print $dbt->{operator}->{$varenv{dbname}}->{oprefix};
my $rel_id = $1 if($R::rel_id && $R::rel_id =~ /(\d+)/);
my $c_id = $1 if($R::c_id && $R::c_id =~ /(\d+)/);
my $u_id = $1 if($R::u_id && $R::u_id =~ /(\d+)/);
$u_id = $1 if($R::c_idadr && $R::c_idadr =~ /(\d+)/ && $R::base_edit eq "new_dmsusers");
my ($edit,$copy_key,$save_key,$relate_key,$move_key,$delete_key,$package_key);
@ -108,6 +109,22 @@ sub tpl(){
$save_key = "save_dmsusers";
$tpl = $db->get_tpl($node_meta->{tpl_id});
#print Dumper($node_meta->{tpl_id}) . "\n u_id:" . $u_id;
#
}elsif($node_meta->{ct_table} eq "contentuser" && $node_meta->{tpl_id} == 199){
my $ref = {
table => "$node_meta->{ct_table}",
fetch => "one",
template_id => "$node_meta->{tpl_id}",
c_id => "$c_id",
};
$ctrel = $dbt->fetch_record($dbh,$ref);
print $q->hidden(-name=>'c_id',-override=>'1', -value=>"$ctrel->{c_id}");
print $q->hidden(-name=>'rel_id',-override=>'1', -value=>"$ctrel->{rel_id}");
$bg_color = $varenv{background_color2};
$edit = "rel_edit";
$save_key = "save_ctuser";
$tpl = $db->get_tpl($node_meta->{tpl_id});
}else{
print $q->div("Es konnten keine Daten gefunden werden"),"\n";
return "failure::Error, no table selected";
@ -192,7 +209,7 @@ sub tpl(){
my $cttrans = $db->collect_ct4rel4nd("contenttrans","","$lang","","","","ct.int10","$ctrel->{c_id}","209,218","","rel_id","");
foreach my $id (sort { $cttrans->{$b}->{c_id} <=> $cttrans->{$a}->{c_id} } keys (%$cttrans)){
my $toppx = $top . "px";
print $q->div({-style=>"position:absolute;top:$toppx;right:20px;"}, " TXID $cttrans->{$id}->{txt16} ",$q->span({-style=>"background-color:$varenv{term_active_color}"},$q->a({-class=>"linknav",-href=>"/$dbt->{shareedms_conf}->{parent_node}/Faktura/$cttrans->{$id}->{node_name}?ct_trans=open\&c_id4trans=$cttrans->{$id}->{c_id}\&tpl_id4trans=$cttrans->{$id}->{template_id}\&kind_of_trans=$users_dms->{kind_of_trans}&owner=$users_dms->{u_id}",-title=>"Faktura Terminal öffnen"},"[ $cttrans->{$id}->{node_name} #$cttrans->{$id}->{ct_name} ]"))),"\n";
print $q->div({-style=>"position:absolute;top:$toppx;right:20px;"}, " TXID $cttrans->{$id}->{txt16} ",$q->span({-style=>"background-color:#f7ae37"},$q->a({-class=>"linknav",-href=>"/$dbt->{shareedms_conf}->{parent_node}/Faktura/$cttrans->{$id}->{node_name}?ct_trans=open\&c_id4trans=$cttrans->{$id}->{c_id}\&tpl_id4trans=$cttrans->{$id}->{template_id}\&kind_of_trans=$users_dms->{kind_of_trans}&owner=$users_dms->{u_id}",-title=>"Faktura Terminal öffnen"},"[ $cttrans->{$id}->{node_name} #$cttrans->{$id}->{ct_name} ]"))),"\n";
$top += 22;
}
}elsif($node_meta->{tpl_id} == 205){
@ -201,7 +218,7 @@ sub tpl(){
my $year = strftime "%Y", localtime;
my ($nyear,$nmonth,$nday) = Add_Delta_YMD($year,$month,$day, 0,0,-28);
my $toppx = $top . "px";
print $q->div({-style=>"position:absolute;top:$toppx;right:20px;"}, $q->span({-style=>"background-color:$varenv{calendar_active_color}"},$q->a({-class=>"linknav",-href=>"/$dbt->{shareedms_conf}->{parent_node}/Mietjournal/?detail_search=1&barcode=$ctrel->{barcode}&start_date_time=$nday.$nmonth.$nyear",-title=>"Mietjournal der letzten 4 Wochen"},"[ Mietjournal zu Rad $dbt->{operator}->{$varenv{dbname}}->{oprefix}$ctrel->{barcode} ]"))),"\n";
print $q->div({-style=>"position:absolute;top:$toppx;right:20px;"}, $q->span({-style=>"background-color:#86cbd7"},$q->a({-class=>"linknav",-href=>"/$dbt->{shareedms_conf}->{parent_node}/Mietjournal/?detail_search=1&barcode=$ctrel->{barcode}&start_date_time=$nday.$nmonth.$nyear",-title=>"Mietjournal der letzten 4 Wochen"},"[ Mietjournal zu Rad $dbt->{operator}->{$varenv{dbname}}->{oprefix}$ctrel->{barcode} ]"))),"\n";
$top += 22;
#}else{
#print $q->div({-style=>"position:absolute;top:$top;right:20px;"},"no valid users path definition: $tpath"),"\n";

View file

@ -27,14 +27,12 @@ sub tpl(){
my $return = shift || "";
my $q = new CGI;
my $cf = new Config;
my $dbt = new DBtank;
my $apif = new APIfunc;
my $api_file = "/var/www/copri4/shareeconf/apikeys.cfg";
my $aconf = Config::General->new($api_file);
my %apikeyconf = $aconf->getall;
#print $apikeyconf{googlemap}->{google_key};
my $api_return = { authcookie => '' };
my $coo = $q->cookie(-name=>'domcookie') || $R::sessionid;
@ -43,18 +41,22 @@ sub tpl(){
my $initMap = $dbt->{website}->{$varenv->{syshost}}->{initMap};
my $map_zoom = $dbt->{website}->{$varenv->{syshost}}->{map_zoom} || "10";
my $project = "all";
my $uri_request = $dbt->{primary}->{sharee_primary}->{primaryDMS};
if($dbt->{website}->{$varenv->{syshost}}->{merchant_id}){
$api_return->{authcookie} = $dbt->{website}->{$varenv->{syshost}}->{merchant_id} if(!$api_return->{authcookie});
$project = $dbt->{website}->{$varenv->{syshost}}->{project} if($dbt->{website}->{$varenv->{syshost}}->{project});
$uri_request = $dbt->{website}->{$varenv->{syshost}}->{operatorWeb};
}elsif($dbt->{operator}->{$varenv->{dbname}}->{merchant_id}){
$api_return->{authcookie} = $dbt->{operator}->{$varenv->{dbname}}->{merchant_id} if(!$api_return->{authcookie});
$initMap = $dbt->{operator}->{$varenv->{dbname}}->{initMap} if($dbt->{operator}->{$varenv->{dbname}}->{initMap});
$map_zoom = $dbt->{operator}->{$varenv->{dbname}}->{map_zoom} if($dbt->{operator}->{$varenv->{dbname}}->{map_zoom});
$project = $dbt->{operator}->{$varenv->{dbname}}->{project} if($dbt->{operator}->{$varenv->{dbname}}->{project});
$uri_request = $dbt->{operator}->{$varenv->{dbname}}->{operatorDMS};
}elsif($dbt->{primary}->{$varenv->{dbname}}->{merchant_id}){
$api_return->{authcookie} = $dbt->{primary}->{$varenv->{dbname}}->{merchant_id} if(!$api_return->{authcookie});
$initMap = $dbt->{primary}->{$varenv->{dbname}}->{initMap} if($dbt->{primary}->{$varenv->{dbname}}->{initMap});
$uri_request = $dbt->{primary}->{$varenv->{dbname}}->{primaryDMS};
}
my $icon_green = "Open_Green.png";
@ -71,12 +73,17 @@ sub tpl(){
$users_sharee->{c_id} = "0" if(!$users_sharee->{c_id});
$initMap =~ s/\s//g;
my ($lat,$lng) = split(/,/,$initMap);
my $kmlfile = "";
my $filesize = 0;
my $preserve_view = "false";
require "Mod/KMLout.pm";
my $kmlfile = Mod::KMLout::kmlGenerator($api_return,$varenv,$users_sharee);
$kmlfile = Mod::KMLout::kmlGenerator($api_return,$varenv,$users_sharee);
my $filesize = -s "$varenv->{metahost}/xml/$kmlfile";
my $preserve_view = "false";
$preserve_view = "true" if($filesize < 200);#it's like empty without publixc stations
#
#used by empty station card like without public stations
#setting to true to keeps lat,lng and zoom
$preserve_view = "true" if($filesize < 200);
print "<div style='background-color:#cccccc;width:100%;margin-top:1em;'>\n";
@ -96,13 +103,11 @@ print<<EOF
var ctaLayer = new google.maps.KmlLayer({
position: map.getCenter(),
preserveViewport: $preserve_view,
//url: '$dbt->{primary}->{sharee_primary}->{primaryApp}/KMLout?kml=' + (new Date()).getTime() + '$users_sharee->{c_id}',
//url: '$varenv->{metahost}/xml/KMLout-3',
//url: '$varenv->{wwwhost}/?kml=' + (new Date()).getTime(),
//url: '$uri_request/KMLout?authcookie=$api_return->{authcookie}&dynamo=' + (new Date()).getTime(),
url: '$varenv->{metahost}/xml/$kmlfile',
map: map
});
console.log('$varenv->{metahost}/xml/$kmlfile');
console.log(ctaLayer);
};
@ -119,7 +124,7 @@ print "</div>\n";
#print $q->div({-class=>"content2_legende", -style=>'font-weight:bold;'}, "&bull; Ist ein Lastenrad an einer Mietradstation verfügbar?"),"\n";
print $q->div({-class=>"content2_legende"}, $q->img({-style=>'height:30px;', -src=>"$varenv->{metahost}/img/$icon_green"}), "Lastenrad verfügbar"),"\n";
print $q->div({-class=>"content2_legende"}, $q->img({-style=>'height:30px;', -src=>"$varenv->{metahost}/img/$icon_red"}), "Lastenrad nicht verfügbar"),"\n";
print $q->div({-class=>"content2_legende"}, "&nbsp;"),"\n";
#print $q->div({-class=>"content2_legende"}, "&nbsp;"),"\n";
print "$initMap|$varenv->{dbname}|$api_return->{authcookie}|$users_sharee->{c_id}|$kmlfile" if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id});

View file

@ -207,7 +207,7 @@ sub tpl(){
print "<div id='Content4list'>\n";
my $v_journal = $R::v_journal || "";
if($node_meta->{main_id} == $dbt->{shareeconf_dms}->{invoicejournal}){
if($node_meta->{main_id} == $dbt->{shareedms_conf}->{invoicejournal}){
$v_journal = $node_meta->{node_name};
}

View file

@ -68,7 +68,7 @@ sub tpl(){
my $tpl = $db->get_tpl($rel->{template_id});
my @tpl_order = split /,/,$tpl->{tpl_order};
my $u_name = $dbt->sys_username($dbh,$ct->{owner});
$ct->{mtime} = $lb->time4de($ct->{mtime},"1");
$ct->{change} = $lb->time4de($ct->{mtime},"1");
print "<div id='Content4list'>";
print $q->div({-class=>"copri_header",-style=>"background-color:#cccccc;"},"Pfad: $path");
@ -91,7 +91,7 @@ sub tpl(){
print $q->a({-class=>"editnav",-href=>"$script$path?config2edit=1",-title=>'bearbeiten'}, $q->img({-src=>"$varenv{metahost}/glyphicons/glyphicons-151-edit.png"}));
print "</td>\n";
}
print $q->td({-style=>"background-color:white;padding-right:10px;border-bottom: 1px solid silver;text-align:right;font-size:12px;"}, "$u_name / $ct->{mtime}");
print $q->td({-style=>"background-color:white;padding-right:10px;border-bottom: 1px solid silver;text-align:right;font-size:12px;"}, "$u_name / $ct->{change}");
my $i=0;
foreach (@tpl_order){

View file

@ -19,8 +19,6 @@ use Mod::Libenz;
use Mod::Libenzdb;
use Mod::DBtank;
use Mod::APIfunc;
use Date::Calc qw(:all);
use Storable;
use Data::Dumper;
@ -48,38 +46,25 @@ sub tpl(){
my $db = new Libenzdb;
my $dbt = new DBtank;
my $apif = new APIfunc;
my $but = new Buttons;
my %varenv = $cf->envonline();
my $script = $q->script_name();
my $path_info = $q->path_info();
my $path = $path_info;
#with meta_host,
if("$varenv{metahost}"){
$path = "$script" . "$path_info";
$script="";
}
my $path = $q->path_info();
my $lang = "de";
my $dbh = "";
my $parent_node4rel = $db->get_node4rel($node_meta->{parent_id},"","","null");
my %ib = $but->ibuttons();
my $tpl_order = $node_meta->{tpl_order};
if(1==2 && $node_meta->{tpl_id} >= 400 && $node_meta->{tpl_id} < 500){
if(1==2 && $node_meta->{tpl_id} > 400 && $node_meta->{tpl_id} < 500){
$tpl_order =~ s/barcode=Rad/barcode=Rad,txt10=Station-log,txt09=Wartungsprotokoll=area/;
$tpl_order =~ s/int04=Station/int04=Station,txt09=Wartungsprotokoll=area/ if($node_meta->{tpl_id} == 403);
$tpl_order =~ s/int04=Station/int04=Station,txt09=Wartungsprotokoll=area/ if($node_meta->{tpl_id} == 499);
}
my @tpl_order = split /,/,$tpl_order;
my $message = "";
#$message = "Fehler: bitte Unter \"Servicetechnik\" die Datenklasse konfigurieren!" if(scalar(@tpl_order) < 1);
#$message = "Fehler: " if(scalar(@tpl_order) < 1);
my $s_owner_id = "";
#my $s_u_name = "";
my @viewsel = split /\//,$1 if($path =~ /^\/(.*)/);
my $depth = scalar(@viewsel);
my $view_base = $viewsel[1] || "nothing";#like Waren
my $node_mandant = $db->get_node("$view_base","$lang");
#TODO, build service path by pos.template_id or pos.barcode alis bike_id
#my $pref = { table => "content",
# table_pos => "contentpos",
@ -122,7 +107,9 @@ sub tpl(){
$offset += $limit;
}
my $date; my $start_chck=0;my $end_chck=0;
my $date = "";
my $start_chck=0;
my $end_chck=0;
my $last_year;
if($R::s_start_mtime){
($date,$start_chck) = $lb->checkdate($R::s_start_mtime) if($R::s_start_mtime !~ "%");
@ -144,17 +131,22 @@ sub tpl(){
my $scol = "mtime";
my $table = "content";
$searchref->{table_pos} = "contentpos";
if($node_meta->{tpl_id} > 600 && $node_meta->{tpl_id} < 700){
if($node_meta->{tpl_id} == 199){
$table = "contentuser";
$searchref->{table_pos} = "";
$searchref->{template_id_pos} = "";
$main_ids = $node_meta->{main_id};
$tpl_ids = $node_meta->{tpl_id};
}
elsif($node_meta->{tpl_id} > 600 && $node_meta->{tpl_id} < 700){
$table = "contentadr";
$searchref->{table_pos} = "contentadrpos";
$searchref->{template_id_pos} = "$node_meta->{tpl_id}";
}
if($node_meta->{tpl_id} == 198){
my $mandant_id = 100002;
elsif($node_meta->{tpl_id} == 198){
$table = "contentadr";
$searchref->{table_pos} = "users";
#$searchref->{template_id_pos} = "$node_meta->{tpl_id}";
$main_ids = 200011;
$tpl_ids = 202;
print<<EOF
<style>
@ -168,7 +160,7 @@ print<<EOF
<script>
\$(function() {
\$('#json_selectadr').autocomplete({
source: '/ajax_json?mandant_id=$mandant_id&table=contentadr',
source: '/ajax_json?mandant_id=$dbt->{shareedms_conf}->{parent_id}&table=contentadr',
minLength: 2,
select: function(event, ui) {
\$('#vorname_name').val(ui.item.vorname_name);
@ -187,7 +179,9 @@ EOF
#print Dumper($node_meta);
my $hashfile = "$varenv{logdir}/$users_dms->{u_id}-$searchref->{table_pos}-searchhash";
my $ct4rel = {};
if(!$start_chck && !$end_chck && $parent_node4rel ne "Servicetechnik" && $main_ids && $tpl_ids){
#print Dumper($node_meta);
#print "if(!$start_chck && !$end_chck && $main_ids && $tpl_ids){";
if(!$start_chck && !$end_chck && $main_ids && $tpl_ids){
#$rows = $db->count_content($searchref->{table_pos},"$main_ids","$tpl_ids");
#collect search keys
@ -214,19 +208,17 @@ EOF
my $todo = "";
my $ck4ex = "";
#only if permission read
if(($node_meta->{ct_table} eq "users" && $users_dms->{int07} >= 1) || ($node_meta->{ct_table} eq "contentadrpos" && $users_dms->{int02} >= 1) || ($node_meta->{ct_table} eq "contentpos" && $users_dms->{int01} >= 1)){
$ct4rel = $db->search_content3($searchref,$table,$node_mandant->{parent_id},$node_meta,$users_dms->{u_id},$lang,"$main_ids","$tpl_ids","","",$time,"",$scol,$users_dms->{sort_updown},$offset,$limit,$export,$todo,$ck4ex,"");
if(($node_meta->{ct_table} eq "users" && $users_dms->{int07} >= 1) || ($node_meta->{ct_table} eq "contentadrpos" && $users_dms->{int02} >= 1) || ($node_meta->{ct_table} eq "contentpos" && $users_dms->{int01} >= 1) || ($node_meta->{ct_table} eq "contentuser" && $users_dms->{int08} >= 1)){
$ct4rel = $db->search_content3($searchref,$table,$dbt->{shareedms_conf}->{parent_id},$node_meta,$users_dms->{u_id},$lang,"$main_ids","$tpl_ids","","",$time,"",$scol,$users_dms->{sort_updown},$offset,$limit,$export,$todo,$ck4ex,"");
}else{
$return = "failure::Abbruch. Keine Zugriffsberechtigung";
}
}
print "<div id='Content4list'>\n";
if($varenv{syshost} ne "azn"){
my $header_style = "";
$header_style = "border:2px solid #9f1f0e;" if($message);
print $q->div({-class=>"copri_header",-style=>"background-color:$node_meta->{bg_color};"},"$path",$q->span({-style=>"$header_style"},"$message"));
}
my $header_style = "";
$header_style = "border:2px solid #9f1f0e;" if($message);
print $q->div({-class=>"copri_header",-style=>"background-color:$node_meta->{bg_color};"},"$path",$q->span({-style=>"$header_style"},"$message"));
print $q->div({-style=>'background-color:silver;height:10px;'},""),"\n";
print $q->start_form(-name=>'searchform'),"\n";
@ -240,7 +232,7 @@ EOF
print $q->start_table({ -style=>'clear:both;', -border=>'0', -width=>'100%',-align=>'center', -cellpadding=>'0', -cellspacing=>'0'}),"\n";
#new_edit and search (disabled for DMS-Account)
if($node_meta->{tpl_id} != 198){
if($node_meta->{tpl_id} != 198 && $node_meta->{tpl_id} != 199){
my $edit="rel_edit";
my $new_key="service_done";
@ -305,7 +297,7 @@ EOF
print $q->textfield(-style=>'border:1px solid grey;height:25px;width:80%;',-id=>"json_selectadr",-name=>"json_selectadr", -placeholder=>'Neuer DMS-Account', -value=>""),"\n";
print "</th>\n";
}else{
}elsif($node_meta->{tpl_id} != 199){
print $q->th({-style=>""},"&nbsp;"),"\n";
print $q->th({-style=>""},"&nbsp;"),"\n";
}
@ -353,7 +345,7 @@ EOF
#Tablecontent (parameter)
print $q->Tr(),"\n";
if($node_meta->{tpl_id} != 198){
if($node_meta->{tpl_id} != 198 && $node_meta->{tpl_id} != 199){
print $q->td({-class=>'tdtxt',-style=>"$set_style"},""),"\n";
print $q->td({-class=>'tdint',-style=>"$set_style"},""),"\n";
}
@ -386,8 +378,10 @@ EOF
#$u_name = $ct_users->{$ct4rel->{$id}->{$key}}->{txt01} || $ct4rel->{$id}->{$key};
print $q->td({-class=>"$tdclass",-style=>"$tdstyle $set_style"},"$u_name"),"\n";
}elsif($key eq "ct_name" && $node_meta->{ct_table} eq "contentuser"){
print $q->td({-class=>"$tdclass",-style=>"$tdstyle $set_style"},$q->a({-class=>"linknav3",-href=>"?node2edit=editpart\&c_id=$ct4rel->{$id}->{c_id}",-title=>"edit"},"$ct4rel->{$id}->{$key}")),"\n";
}elsif($key eq "barcode" && $node_meta->{ct_table} eq "contentadrpos"){
print $q->td({-class=>"$tdclass",-style=>"$tdstyle $set_style"},$q->a({-class=>"linknav3",-href=>"$varenv{wwwhost}/Waren/?detail_search=1\&s_barcode=$ct4rel->{$id}->{barcode}",-title=>"zum Rad "},"$ct4rel->{$id}->{barcode}")),"\n";
print $q->td({-class=>"$tdclass",-style=>"$tdstyle $set_style"},$q->a({-class=>"linknav3",-href=>"$varenv{wwwhost}/DMS/Waren/?detail_search=1\&s_barcode=$ct4rel->{$id}->{barcode}",-title=>"zum Rad "},"$ct4rel->{$id}->{barcode}")),"\n";
}elsif($key eq "u_id" && $node_meta->{ct_table} eq "users"){
my $adref = {

View file

@ -190,7 +190,7 @@ sub tpl(){
print "<li class='nav-item'> $lmenu0 </li><li><hr class='dropdown-divider'></li>\n";
my $lmenu1;
foreach my $id1 (sort {$node1->{$a}->{n_sort} <=> $node1->{$b}->{n_sort}} keys (%$node1)){
if($node1->{$id1}->{node_name} !~ /Firma|System|Servicetechnik/){
if($node1->{$id1}->{node_name} !~ /Firma|System/){
my $node2 = $db->collect_noderel($node1->{$id1}->{main_id},$lang,$users_dms->{u_id});
$mclass = "";
$mstyle = "";
@ -336,35 +336,30 @@ print <<EOF
EOF
;
if($mode eq "supervisor" || $node_meta->{tpl_name} eq "AttributMatrix"){
$tpl_name = "AttributMatrix";
require "Tpl/AttributMatrix.pm";
$return = &AttributMatrix::tpl($node_meta,$users_dms,$mode,$return);
#}elsif($tpl_id && $tpl_id >= 400 && $tpl_id <= 699){#contentpos or contentadrpos
if($node_meta->{tpl_id} == 199 && $node_meta->{ct_table} eq "contentuser"){
require "Tpl/SubListe.pm";
$return = &SubListe::tpl($node_meta,$users_dms,$mode,$return);
}elsif($node_meta->{ct_table} eq "contentuser"){
require "Tpl/MandantConf.pm";
$return = &MandantConf::tpl($node_meta,$users_dms,$mode,$return);
}elsif($node_meta->{tpl_id} == 1 && $node_meta->{main_id} == 200017){
require "Tpl/Karte.pm";
&Karte::tpl($node_meta,$users_dms,$mode,$varenv,"",$return);
require "Tpl/Karte.pm";
&Karte::tpl($node_meta,$users_dms,$mode,$varenv,"",$return);
}elsif($node_meta->{ct_table} =~ /contentpos|contentadrpos|users$/){#contentpos or contentadrpos
require "Tpl/SubListe.pm";
$return = &SubListe::tpl($node_meta,$users_dms,$mode,$return);
}elsif($node_meta->{ct_table} =~ /content$|contentadr$|contenttrans$/){
require "Tpl/Liste3.pm";
$return = &Liste3::tpl($node_meta,$users_dms,$mode,$return);
}elsif($node_meta->{ct_table} eq "contentuser"){
require "Tpl/MandantConf.pm";
$return = &MandantConf::tpl($node_meta,$users_dms,$mode,$return);
#}elsif($tpl_name =~ /Statistik/){
#require "Tpl/Statistik.pm";
#&Statistik::tpl($main_id,$u_id,$lang,"","",$sort);
}elsif($node_meta->{ct_table} =~ /contenttranspos|contenttheftpos/){
require "Tpl/Calorin.pm";
&Calorin::tpl($node_meta,$users_dms,$mode,$return);
}
##Modalbox things##
if($return !~ /failure/){
if(($R::ct_trans !~ /close/) && ($ct_table =~ /contenttrans/ || $R::kind_of_trans =~ /Faktur|Verleih/) && ($R::ct_trans || $R::trans2edit || $R::ctpos_activ || $R::select_part || $R::set_main_id)){
if(($R::ct_trans !~ /close/) && ($ct_table =~ /contenttrans/) && ($R::ct_trans || $R::trans2edit || $R::ctpos_activ || $R::select_part || $R::set_main_id)){
&Modalbox::mobox($node_meta,$users_dms,$mode,$return);
}elsif(($R::ct_trans !~ /close/) && ($ct_table =~ /content$|contentadr|contenttver|contentpos|users$/ && ($R::ct_trans || $R::rel_edit || $R::base_edit)) || ($R::node2edit && $R::node2edit =~ /edit/)){
}elsif(($R::ct_trans !~ /close/) && ($ct_table =~ /content$|contentadr|contentuser|contentpos|users$/ && ($R::ct_trans || $R::rel_edit || $R::base_edit)) || ($R::node2edit && $R::node2edit =~ /edit/)){
&Modalbox3::mobox3($node_meta,$users_dms,$mode,$return) if($R::rel_edit !~ /delete|save/ && $R::ct_trans !~ /delete/ && $R::base_edit !~ /delete|save/ && !$R::service_id);
}
}

View file

@ -22,8 +22,14 @@ sub new {
#Template
sub tpl(){
my $self = shift;
my ($node_meta,$users_dms,$mode,$varenv,$users_sharee,$return) = @_;
#print Dumper($node_meta);exit;
my $node_meta = shift;
my $users_dms = shift;
my $mode = shift || "";
my $varenv = shift;
my $users_sharee = shift || "";
my $return = shift || "";
my $user_agent = $q->user_agent();
my $lang = "de";
my $debug = 0;
@ -154,19 +160,25 @@ sub tpl(){
}
print "<div style='float:right;text-align:right;height:25px;padding:1em 0;'>\n";
#print "<span style='background-color:#ffffff;color:#$bgcolor1;border:1px solid #ffffff;font-size:1em;padding-right:1em;width:8px;'><img style='height:50px;' src='$varenv->{metahost}/img/Logo-LastenradBayern-01.png' /></span>";
print "<span type='button' style='color:#3f3f3f;font-size:1em;padding-right:1em;width:8px;' onclick='change_fontsize1();'>A</span>";
print "<span type='button' style='color:#3f3f3f;font-size:1.2em;padding-right:1em;width:8px;' onclick='change_fontsize2();'>A</span>";
print "<span type='button' style='color:#3f3f3f;font-size:1.4em;padding-right:1em;width:8px;' onclick='change_fontsize3();'>A</span>";
print "<span type='button' style='color:#3f3f3f;font-size:1.3em;padding-right:1.2em;width:12px;' onclick='change_contrast();' class='bi bi-circle-half'></span>";
if($user_agent !~ /Android|Iphone/i){
print "<span type='button' style='color:#3f3f3f;font-size:1em;padding-right:1em;width:8px;' onclick='change_fontsize1();'>A</span>\n";
print "<span type='button' style='color:#3f3f3f;font-size:1.2em;padding-right:1em;width:8px;' onclick='change_fontsize2();'>A</span>\n";
print "<span type='button' style='color:#3f3f3f;font-size:1.4em;padding-right:1em;width:8px;' onclick='change_fontsize3();'>A</span>\n";
print "<span type='button' style='color:#3f3f3f;font-size:1.3em;padding-right:1.2em;width:12px;' onclick='change_contrast();' class='bi bi-circle-half'></span>\n";
}
if($users_sharee->{c_id} && $R::sharee_edit ne "delete_account2"){
print "<span style='padding-left:10px;'> | $users_sharee->{txt08}</span> <a style='background-color:#ffffff;color:#$bgcolor1;' href='logout_sharee$session'>logout</a>\n";
}
print "</div>\n";
print $q->div({-style=>"text-align:left;width:100%;margin:1em 0;background-image: linear-gradient(to right, rgb(0, 156, 217) 300px, rgb(255,255,255));"},$q->img({-style=>'height:10em;', -src=>"$dbt->{website}->{$varenv->{syshost}}->{operatorWeb1}/img/Logo-LastenradBayern-01.png"})),"\n" if($dbt->{website}->{$varenv->{syshost}}->{project} eq "Bayern");
if($dbt->{website}->{$varenv->{syshost}}->{project} eq "Bayern"){
if($user_agent !~ /Android|Iphone/i){
print $q->div({-style=>"text-align:left;width:100%;margin:1em 0;background-image: linear-gradient(to right, rgb(0, 156, 217) 300px, rgb(255,255,255));"},$q->img({-style=>'height:10em;', -src=>"$dbt->{website}->{$varenv->{syshost}}->{operatorWeb1}/img/Logo-LastenradBayern-01.png"})),"\n";
}else{
print $q->div({-style=>"text-align:left;width:100%;margin:1em 0;background-color:#$bgcolor1;"},$q->img({-style=>'height:10em;', -src=>"$dbt->{website}->{$varenv->{syshost}}->{operatorWeb1}/img/Logo-LastenradBayern-01.png"})),"\n";
}
}
#test Bayern left-site menue
#print $q->div({-style=>"float:left;text-align:left;border:1px dotted black;"},$q->ul({-id=>'LeftNavi'},$lmenu0)),"\n";
#print "<div id='Contenttxt' style='margin:20px 5px 40px 200px;border:0px dotted #$fgcolor1;'>\n";