From 89b3465da2518bdaa0f7478f02983d7d426770aa Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 8 Nov 2022 17:20:59 +0100 Subject: [PATCH 1/6] Added Gabocom colors --- Layout/default/Workflow/items/color.php | 31 ++- Layout/default/footer.php | 3 +- application/Dashboard/DashboardController.php | 29 +++ public/assets/css/thetool.css | 228 ++++++++++++++++++ 4 files changed, 282 insertions(+), 9 deletions(-) diff --git a/Layout/default/Workflow/items/color.php b/Layout/default/Workflow/items/color.php index e5cec043f..094803bf5 100644 --- a/Layout/default/Workflow/items/color.php +++ b/Layout/default/Workflow/items/color.php @@ -11,14 +11,29 @@ if(preg_match('/^(.+)-1R$/', $color_name, $cmatch)) { diff --git a/Layout/default/footer.php b/Layout/default/footer.php index c2286a7b0..8727d9f2c 100644 --- a/Layout/default/footer.php +++ b/Layout/default/footer.php @@ -19,7 +19,8 @@ diff --git a/application/Dashboard/DashboardController.php b/application/Dashboard/DashboardController.php index a71a17d88..d9f7f03ad 100644 --- a/application/Dashboard/DashboardController.php +++ b/application/Dashboard/DashboardController.php @@ -29,6 +29,35 @@ class DashboardController extends mfBaseController { } } + protected function colorAction() { + + foreach(TT_CABLE_COLORS as $name => $color) { + if(!$color['two-color']) continue; + $hex = $color['hex']; + $hexfg = $color['hexfg']; + $hex2 = $color['hex2']; + $hexfg2 = $color['hexfg2']; + $r = $color['r']; + $g = $color['g']; + $b = $color['b']; + $r2 = $color['r2']; + $g2 = $color['g2']; + $b2 = $color['b2']; + + + $class = ".btn-outline-".$name." { + color: #$hexfg; + border-left-color: #$hex; + border-top-color: #$hex; + border-right-color: #$hex2; + border-bottom-color: #$hex2; + background: linear-gradient(90deg, rgba($r,$g,$b,.5) 0%, rgba($r,$g,$b,.5) 50%, rgba($r2,$g2,$b2,.5) 50%, rgba($r2,$g2,$b2,.5) 100%); +}"; + echo "
$class
\n"; + } + exit; + } + protected function pdfAction() { $order = new Order(7); $owner = new Address(1); diff --git a/public/assets/css/thetool.css b/public/assets/css/thetool.css index 3722094ce..136d94c5e 100644 --- a/public/assets/css/thetool.css +++ b/public/assets/css/thetool.css @@ -220,6 +220,14 @@ h1, h2, h3, h4, h5, h6 { } +.color-shadow-b { + text-shadow: 1px 1px 2px black; +} +.color-shadow-2 { + text-shadow: 1px 1px 2px white; +} + + .pagination a { color: #007bff; } @@ -373,6 +381,226 @@ td.controls { border-color: #FF0088; } +.btn-outline-Rot-Gelb { + color: #FFFFFF; + border-left-color: #FF0000; + border-top-color: #FF0000; + border-right-color: #FFFF00; + border-bottom-color: #FFFF00; + background: linear-gradient(90deg, rgba(255,0,0,.5) 0%, rgba(255,0,0,.5) 50%, rgba(255,255,0,.5) 50%, rgba(255,255,0,.5) 100%); +} + +.btn-outline-Rot-Gruen { + color: #FFFFFF; + border-left-color: #FF0000; + border-top-color: #FF0000; + border-right-color: #00FF00; + border-bottom-color: #00FF00; + background: linear-gradient(90deg, rgba(255,0,0,.5) 0%, rgba(255,0,0,.5) 50%, rgba(0,255,0,.5) 50%, rgba(0,255,0,.5) 100%); +} + +.btn-outline-Rot-Blau { + color: #FFFFFF; + border-left-color: #FF0000; + border-top-color: #FF0000; + border-right-color: #0000FF; + border-bottom-color: #0000FF; + background: linear-gradient(90deg, rgba(255,0,0,.5) 0%, rgba(255,0,0,.5) 50%, rgba(0,0,255,.5) 50%, rgba(0,0,255,.5) 100%); +} + +.btn-outline-Rot-Violett { + color: #FFFFFF; + border-left-color: #FF0000; + border-top-color: #FF0000; + border-right-color: #8800FF; + border-bottom-color: #8800FF; + background: linear-gradient(90deg, rgba(255,0,0,.5) 0%, rgba(255,0,0,.5) 50%, rgba(136,0,255,.5) 50%, rgba(136,0,255,.5) 100%); +} + +.btn-outline-Rot-Grau { + color: #FFFFFF; + border-left-color: #FF0000; + border-top-color: #FF0000; + border-right-color: #888888; + border-bottom-color: #888888; + background: linear-gradient(90deg, rgba(255,0,0,.5) 0%, rgba(255,0,0,.5) 50%, rgba(136,136,136,.5) 50%, rgba(136,136,136,.5) 100%); +} + +.btn-outline-Gelb-Blau { + color: #000000; + border-left-color: #FFFF00; + border-top-color: #FFFF00; + border-right-color: #0000FF; + border-bottom-color: #0000FF; + background: linear-gradient(90deg, rgba(255,255,0,.5) 0%, rgba(255,255,0,.5) 50%, rgba(0,0,255,.5) 50%, rgba(0,0,255,.5) 100%); +} + +.btn-outline-Gelb-Violett { + color: #000000; + border-left-color: #FFFF00; + border-top-color: #FFFF00; + border-right-color: #8800FF; + border-bottom-color: #8800FF; + background: linear-gradient(90deg, rgba(255,255,0,.5) 0%, rgba(255,255,0,.5) 50%, rgba(136,0,255,.5) 50%, rgba(136,0,255,.5) 100%); +} + +.btn-outline-Gelb-Grau { + color: #000000; + border-left-color: #FFFF00; + border-top-color: #FFFF00; + border-right-color: #888888; + border-bottom-color: #888888; + background: linear-gradient(90deg, rgba(255,255,0,.5) 0%, rgba(255,255,0,.5) 50%, rgba(136,136,136,.5) 50%, rgba(136,136,136,.5) 100%); +} + +.btn-outline-Gruen-Blau { + color: #000000; + border-left-color: #00FF00; + border-top-color: #00FF00; + border-right-color: #0000FF; + border-bottom-color: #0000FF; + background: linear-gradient(90deg, rgba(0,255,0,.5) 0%, rgba(0,255,0,.5) 50%, rgba(0,0,255,.5) 50%, rgba(0,0,255,.5) 100%); +} + +.btn-outline-Gruen-Violett { + color: #000000; + border-left-color: #00FF00; + border-top-color: #00FF00; + border-right-color: #8800FF; + border-bottom-color: #8800FF; + background: linear-gradient(90deg, rgba(0,255,0,.5) 0%, rgba(0,255,0,.5) 50%, rgba(136,0,255,.5) 50%, rgba(136,0,255,.5) 100%); +} + +.btn-outline-Gruen-Grau { + color: #000000; + border-left-color: #00FF00; + border-top-color: #00FF00; + border-right-color: #888888; + border-bottom-color: #888888; + background: linear-gradient(90deg, rgba(0,255,0,.5) 0%, rgba(0,255,0,.5) 50%, rgba(136,136,136,.5) 50%, rgba(136,136,136,.5) 100%); +} + +.btn-outline-Braun-Blau { + color: #FFFFFF; + border-left-color: #A52A2A; + border-top-color: #A52A2A; + border-right-color: #0000FF; + border-bottom-color: #0000FF; + background: linear-gradient(90deg, rgba(165,42,42,.5) 0%, rgba(165,42,42,.5) 50%, rgba(0,0,255,.5) 50%, rgba(0,0,255,.5) 100%); +} + +.btn-outline-Braun-Violett { + color: #FFFFFF; + border-left-color: #A52A2A; + border-top-color: #A52A2A; + border-right-color: #8800FF; + border-bottom-color: #8800FF; + background: linear-gradient(90deg, rgba(165,42,42,.5) 0%, rgba(165,42,42,.5) 50%, rgba(136,0,255,.5) 50%, rgba(136,0,255,.5) 100%); +} + +.btn-outline-Braun-Grau { + color: #FFFFFF; + border-left-color: #A52A2A; + border-top-color: #A52A2A; + border-right-color: #888888; + border-bottom-color: #888888; + background: linear-gradient(90deg, rgba(165,42,42,.5) 0%, rgba(165,42,42,.5) 50%, rgba(136,136,136,.5) 50%, rgba(136,136,136,.5) 100%); +} + +.btn-outline-Braun-Gruen { + color: #FFFFFF; + border-left-color: #A52A2A; + border-top-color: #A52A2A; + border-right-color: #00FF00; + border-bottom-color: #00FF00; + background: linear-gradient(90deg, rgba(165,42,42,.5) 0%, rgba(165,42,42,.5) 50%, rgba(0,255,0,.5) 50%, rgba(0,255,0,.5) 100%); +} + +.btn-outline-Braun-Gelb { + color: #FFFFFF; + border-left-color: #A52A2A; + border-top-color: #A52A2A; + border-right-color: #FFFF00; + border-bottom-color: #FFFF00; + background: linear-gradient(90deg, rgba(165,42,42,.5) 0%, rgba(165,42,42,.5) 50%, rgba(255,255,0,.5) 50%, rgba(255,255,0,.5) 100%); +} + +.btn-outline-Braun-Rot { + color: #FFFFFF; + border-left-color: #A52A2A; + border-top-color: #A52A2A; + border-right-color: #FF0000; + border-bottom-color: #FF0000; + background: linear-gradient(90deg, rgba(165,42,42,.5) 0%, rgba(165,42,42,.5) 50%, rgba(255,0,0,.5) 50%, rgba(255,0,0,.5) 100%); +} + +.btn-outline-Schwarz-Rot { + color: #FFFFFF; + border-left-color: #000000; + border-top-color: #000000; + border-right-color: #FF0000; + border-bottom-color: #FF0000; + background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.5) 50%, rgba(255,0,0,.5) 50%, rgba(255,0,0,.5) 100%); +} + +.btn-outline-Schwarz-Gelb { + color: #FFFFFF; + border-left-color: #000000; + border-top-color: #000000; + border-right-color: #FFFF00; + border-bottom-color: #FFFF00; + background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.5) 50%, rgba(255,255,0,.5) 50%, rgba(255,255,0,.5) 100%); +} + +.btn-outline-Schwarz-Gruen { + color: #FFFFFF; + border-left-color: #000000; + border-top-color: #000000; + border-right-color: #00FF00; + border-bottom-color: #00FF00; + background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.5) 50%, rgba(0,255,0,.5) 50%, rgba(0,255,0,.5) 100%); +} + +.btn-outline-Schwarz-Blau { + color: #FFFFFF; + border-left-color: #000000; + border-top-color: #000000; + border-right-color: #0000FF; + border-bottom-color: #0000FF; + background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.5) 50%, rgba(0,0,255,.5) 50%, rgba(0,0,255,.5) 100%); +} + +.btn-outline-Schwarz-Violett { + color: #FFFFFF; + border-left-color: #000000; + border-top-color: #000000; + border-right-color: #8800FF; + border-bottom-color: #8800FF; + background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.5) 50%, rgba(136,0,255,.5) 50%, rgba(136,0,255,.5) 100%); +} + +.btn-outline-Schwarz-Grau { + color: #FFFFFF; + border-left-color: #000000; + border-top-color: #000000; + border-right-color: #888888; + border-bottom-color: #888888; + background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.5) 50%, rgba(136,136,136,.5) 50%, rgba(136,136,136,.5) 100%); +} + +.btn-outline-Schwarz-Braun { + color: #FFFFFF; + border-left-color: #000000; + border-top-color: #000000; + border-right-color: #A52A2A; + border-bottom-color: #A52A2A; + background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.5) 50%, rgba(165,42,42,.5) 50%, rgba(165,42,42,.5) 100%); +} + + + + + .text-white { color: #f00; From eb2796b346ccb907bc195a637bde076fb719ad20 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 8 Nov 2022 17:24:10 +0100 Subject: [PATCH 2/6] added color "natur" --- public/assets/css/thetool.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/assets/css/thetool.css b/public/assets/css/thetool.css index 136d94c5e..637343890 100644 --- a/public/assets/css/thetool.css +++ b/public/assets/css/thetool.css @@ -381,6 +381,11 @@ td.controls { border-color: #FF0088; } +.btn-outline-natur { + color: #000000; + background-color: #FFFFCC; +} + .btn-outline-Rot-Gelb { color: #FFFFFF; border-left-color: #FF0000; From 7912faeb21f436f3ff708e57bb8fdda3d269be4d Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 8 Nov 2022 17:59:53 +0100 Subject: [PATCH 3/6] Added new colors to linework --- Layout/default/Linework/Index.php | 35 ++++++++++++++++++------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/Layout/default/Linework/Index.php b/Layout/default/Linework/Index.php index de06e26fc..7adee780d 100644 --- a/Layout/default/Linework/Index.php +++ b/Layout/default/Linework/Index.php @@ -302,29 +302,36 @@ building->getWorkflowvalue('ist_rohrverband_name')) ? $term->building->getWorkflowvalue('ist_rohrverband_name') : $term->building->getWorkflowvalue('rohrverband_name')?> building->getWorkflowvalue('ist_rohrtype')) ? $term->building->getWorkflowvalue('ist_rohrtype') : $term->building->getWorkflowvalue('rohrtype')?> - building->getWorkflowvalue('ist_rohrfarbe')): ?> + building->getWorkflowvalue('ist_rohrfarbe')) { + $rohrfarbe = $term->building->getWorkflowvalue('ist_rohrfarbe'); + } elseif($term->building->getWorkflowvalue('rohrfarbe')) { + $rohrfarbe = $term->building->getWorkflowvalue('rohrfarbe'); + } + ?> + + ; - building->getWorkflowvalue('ist_rohrfarbe')]["mark"]): ?> - color: #building->getWorkflowvalue('ist_rohrfarbe')]["hexfg"]?>; - - color: #building->getWorkflowvalue('ist_rohrfarbe')]["hex"]?>; - + background: rgb(,,); + background: linear-gradient(90deg, rgba(,,,.5) 0%, rgba(,,,.5) 50%, rgba(,,,.5) 50%, rgba(,,,.5) 100%); + padding-right: 42px; border-radius: 3px; - ">------- building->getWorkflowvalue('ist_rohrfarbe'))?> - building->getWorkflowvalue('rohrfarbe')): ?> + ">  + + ; - building->getWorkflowvalue('rohrfarbe')]["mark"]): ?> - color: #building->getWorkflowvalue('rohrfarbe')]["hexfg"]?>; + background-color: #; + + color: #; - color: #building->getWorkflowvalue('rohrfarbe')]["hex"]?>; + color: #; border-radius: 3px; - ">------- building->getWorkflowvalue('rohrfarbe'))?> + ">------- + From 86bfedc6ac9e20f94b87f3ad4aabd9851a1f0066 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 8 Nov 2022 18:44:21 +0100 Subject: [PATCH 4/6] Fixed CORS --- lib/mvcfronk/mfBase/mfBaseApicontroller.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/mvcfronk/mfBase/mfBaseApicontroller.php b/lib/mvcfronk/mfBase/mfBaseApicontroller.php index 33f21a373..f0d82e60d 100644 --- a/lib/mvcfronk/mfBase/mfBaseApicontroller.php +++ b/lib/mvcfronk/mfBase/mfBaseApicontroller.php @@ -48,13 +48,6 @@ class mfBaseApicontroller { $this->init(); } - if($this->requireAuth) { - $this->authenticateUser(); - if(method_exists($this,"authenticated")) { - $this->authenticated(); - } - } - // Apicontroller should add allowed hostnames with $this->addAllowedOrigin() $this->createCorsHeaders(); @@ -64,6 +57,15 @@ class mfBaseApicontroller { $this->return(mfResponse::Ok()); } + if($this->requireAuth) { + $this->authenticateUser(); + if(method_exists($this,"authenticated")) { + $this->authenticated(); + } + } + + + // route to action $this->route = $params['apicall'].((array_key_exists("apiparams", $params)) ? $params['apiparams'] : ""); $responseData = $this->runRoute($this->route); From ade53322f15a65b19973ba2f180328c829b371b8 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 8 Nov 2022 19:22:28 +0100 Subject: [PATCH 5/6] Fixed cors --- application/Api/v1/AddressdbApicontroller.php | 5 +--- lib/mvcfronk/mfBase/mfBaseApicontroller.php | 27 ++++++++++--------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/application/Api/v1/AddressdbApicontroller.php b/application/Api/v1/AddressdbApicontroller.php index 09d4536fd..34c415f21 100644 --- a/application/Api/v1/AddressdbApicontroller.php +++ b/application/Api/v1/AddressdbApicontroller.php @@ -33,10 +33,7 @@ class AddressdbApicontroller extends mfBaseApicontroller { $this->filter_salescluster_ids[] = $campain_scluster->salescluster_id; } - if(!array_key_exists($campain_scluster->salescluster_id, $this->campaigns_by_scluster)) { - $this->campaigns_by_scluster[$campain_scluster->salescluster_id] = []; - } - $this->campaigns_by_scluster[$campain_scluster->salescluster_id][] = $campaign->id; + $this->campaigns_by_scluster[$campain_scluster->salescluster_id] = $campaign->id; } $this->campaigns[$campaign->id] = $campaign; diff --git a/lib/mvcfronk/mfBase/mfBaseApicontroller.php b/lib/mvcfronk/mfBase/mfBaseApicontroller.php index f0d82e60d..1b6c50c0d 100644 --- a/lib/mvcfronk/mfBase/mfBaseApicontroller.php +++ b/lib/mvcfronk/mfBase/mfBaseApicontroller.php @@ -42,21 +42,24 @@ class mfBaseApicontroller { $this->logRequest2(); register_shutdown_function(["mfBaseApicontroller", "return_errors"]); + + // CORS preflight + // allow all origins + if($this->http_method == "OPTIONS") { + // dont execute route, OPTIONS only requires CORS headers + if(preg_match('#^(https?)://(.+)(:\d+)?$#i', $this->headers['origin'], $m)) { + $origin_proto = $m[1]; + $origin_hostname = $m[2]; + header("Access-Control-Allow-Origin: ".$origin_proto."://".$origin_hostname); + $this->return(mfResponse::Ok()); + } + } // run Controllers init() function if(method_exists($this,"init")) { $this->init(); } - // Apicontroller should add allowed hostnames with $this->addAllowedOrigin() - $this->createCorsHeaders(); - - // CORS preflight OPTIONS - if($this->http_method == "OPTIONS") { - // dont execute route, OPTIONS only requires CORS headers - $this->return(mfResponse::Ok()); - } - if($this->requireAuth) { $this->authenticateUser(); if(method_exists($this,"authenticated")) { @@ -64,7 +67,8 @@ class mfBaseApicontroller { } } - + // Apicontroller should add allowed hostnames with $this->addAllowedOrigin() + $this->createCorsHeaders(); // route to action $this->route = $params['apicall'].((array_key_exists("apiparams", $params)) ? $params['apiparams'] : ""); @@ -305,7 +309,7 @@ class mfBaseApicontroller { private function createCorsHeaders() { header("Access-Control-Allow-Methods: GET,POST,OPTIONS"); header("Access-Control-Allow-Headers: X-Api-Key"); - //var_dump($this->headers);exit; + if(!is_array($this->allowed_origins) || !count($this->allowed_origins)) { return true; } @@ -323,7 +327,6 @@ class mfBaseApicontroller { $request_origin['hostname'] = $m[2]; } - //var_dump($request_origin);exit; foreach($this->allowed_origins as $origin) { //echo $origin." -> ".$_SERVER["HTTP_HOST"]; From 4323e8e6838a724170343379d36c7d64736250fc Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 8 Nov 2022 19:27:14 +0100 Subject: [PATCH 6/6] Fixed cors headers --- lib/mvcfronk/mfBase/mfBaseApicontroller.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/mvcfronk/mfBase/mfBaseApicontroller.php b/lib/mvcfronk/mfBase/mfBaseApicontroller.php index 1b6c50c0d..1430d1867 100644 --- a/lib/mvcfronk/mfBase/mfBaseApicontroller.php +++ b/lib/mvcfronk/mfBase/mfBaseApicontroller.php @@ -47,6 +47,9 @@ class mfBaseApicontroller { // allow all origins if($this->http_method == "OPTIONS") { // dont execute route, OPTIONS only requires CORS headers + header("Access-Control-Allow-Methods: GET,POST,OPTIONS"); + header("Access-Control-Allow-Headers: X-Api-Key"); + if(preg_match('#^(https?)://(.+)(:\d+)?$#i', $this->headers['origin'], $m)) { $origin_proto = $m[1]; $origin_hostname = $m[2];