Merge branch 'master' of code.fronk.at:fronk/thetool

This commit is contained in:
Frank Schubert
2022-11-09 13:27:59 +01:00
7 changed files with 325 additions and 35 deletions

View File

@@ -302,29 +302,36 @@
<td><?=($term->building->getWorkflowvalue('ist_rohrverband_name')) ? $term->building->getWorkflowvalue('ist_rohrverband_name') : $term->building->getWorkflowvalue('rohrverband_name')?></td>
<td><?=($term->building->getWorkflowvalue('ist_rohrtype')) ? $term->building->getWorkflowvalue('ist_rohrtype') : $term->building->getWorkflowvalue('rohrtype')?></td>
<td>
<?php if($term->building->getWorkflowvalue('ist_rohrfarbe')): ?>
<?php $rohrfarbe = false;
if($term->building->getWorkflowvalue('ist_rohrfarbe')) {
$rohrfarbe = $term->building->getWorkflowvalue('ist_rohrfarbe');
} elseif($term->building->getWorkflowvalue('rohrfarbe')) {
$rohrfarbe = $term->building->getWorkflowvalue('rohrfarbe');
}
?>
<?php if($rohrfarbe): ?>
<?php if(TT_CABLE_COLORS[$rohrfarbe]['two-color']): ?>
<span
style="
background-color: #<?=TT_CABLE_COLORS[$term->building->getWorkflowvalue('ist_rohrfarbe')]["hex"]?>;
<?php if(TT_CABLE_COLORS[$term->building->getWorkflowvalue('ist_rohrfarbe')]["mark"]): ?>
color: #<?=TT_CABLE_COLORS[$term->building->getWorkflowvalue('ist_rohrfarbe')]["hexfg"]?>;
<?php else: ?>
color: #<?=TT_CABLE_COLORS[$term->building->getWorkflowvalue('ist_rohrfarbe')]["hex"]?>;
<?php endif; ?>
background: rgb(<?=TT_CABLE_COLORS[$rohrfarbe]["r"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["g"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["b"]?>);
background: linear-gradient(90deg, rgba(<?=TT_CABLE_COLORS[$rohrfarbe]["r"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["g"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["b"]?>,.5) 0%, rgba(<?=TT_CABLE_COLORS[$rohrfarbe]["r"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["g"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["b"]?>,.5) 50%, rgba(<?=TT_CABLE_COLORS[$rohrfarbe]["r2"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["g2"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["b2"]?>,.5) 50%, rgba(<?=TT_CABLE_COLORS[$rohrfarbe]["r2"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["g2"]?>,<?=TT_CABLE_COLORS[$rohrfarbe]["b2"]?>,.5) 100%);
padding-right: 42px;
border-radius: 3px;
">-------</span> <?=ucfirst($term->building->getWorkflowvalue('ist_rohrfarbe'))?>
<?php elseif($term->building->getWorkflowvalue('rohrfarbe')): ?>
">&nbsp;</span> <?=ucfirst($rohrfarbe)?>
<?php else: ?>
<span
style="
background-color: #<?=TT_CABLE_COLORS[$term->building->getWorkflowvalue('rohrfarbe')]["hex"]?>;
<?php if(TT_CABLE_COLORS[$term->building->getWorkflowvalue('rohrfarbe')]["mark"]): ?>
color: #<?=TT_CABLE_COLORS[$term->building->getWorkflowvalue('rohrfarbe')]["hexfg"]?>;
background-color: #<?=TT_CABLE_COLORS[$rohrfarbe]["hex"]?>;
<?php if(TT_CABLE_COLORS[$rohrfarbe]["mark"]): ?>
color: #<?=TT_CABLE_COLORS[$rohrfarbe]["hexfg"]?>;
<?php else: ?>
color: #<?=TT_CABLE_COLORS[$term->building->getWorkflowvalue('rohrfarbe')]["hex"]?>;
color: #<?=TT_CABLE_COLORS[$rohrfarbe]["hex"]?>;
<?php endif; ?>
border-radius: 3px;
">-------</span> <?=ucfirst($term->building->getWorkflowvalue('rohrfarbe'))?>
">-------</span> <?=ucfirst($rohrfarbe)?>
<?php endif; ?>
<?php endif; ?>
</td>
</tr>
</table>

View File

@@ -11,14 +11,29 @@ if(preg_match('/^(.+)-1R$/', $color_name, $cmatch)) {
<select class="form-control selectpicker show-tick" name="wfitem_<?=$item->name?>" id="wfitem_<?=$item->name?>_<?=$$wftype->id?>" title="Farbe wählen" data-style="btn-outline-<?=$color_name?>">
<option></option>
<?php foreach(TT_CABLE_COLORS as $name => $color): ?>
<option
style="background-color: rgba(<?=$color["r"]?>,<?=$color["g"]?>,<?=$color["b"]?>, .5); color: #<?=$color["hexfg"]?>"
value="<?=$name?>"
data-bg-color="#<?=$color["hex"]?>" <?=($color['mark']) ? "data-icon='fa-ellipsis-h'" : ""?>
<?=($name == $item->value->value_string) ? "selected='selected'" : ""?>
>
<?=ucfirst($name)?>
</option>
<?php if($color['two-color']): ?>
<option
style="color: #<?=$color["hexfg"]?>;
background: rgb(<?=$color["r"]?>,<?=$color["g"]?>,<?=$color["b"]?>);
background: linear-gradient(90deg, rgba(<?=$color["r"]?>,<?=$color["g"]?>,<?=$color["b"]?>,.5) 0%, rgba(<?=$color["r"]?>,<?=$color["g"]?>,<?=$color["b"]?>,.5) 50%, rgba(<?=$color["r2"]?>,<?=$color["g2"]?>,<?=$color["b2"]?>,.5) 50%, rgba(<?=$color["r2"]?>,<?=$color["g2"]?>,<?=$color["b2"]?>,.5) 100%);
text-shadow: 1px 1px 2px #<?=$color["hex"]?>;
"
value="<?=$name?>"
data-bg-color="#<?=$color["hex"]?>" <?=($color['mark']) ? "data-icon='fa-ellipsis-h'" : ""?>
<?=($name == $item->value->value_string) ? "selected='selected'" : ""?>
>
<?=ucfirst($name)?>
</option>
<?php else: ?>
<option
style="background-color: rgba(<?=$color["r"]?>,<?=$color["g"]?>,<?=$color["b"]?>, .5); color: #<?=$color["hexfg"]?>"
value="<?=$name?>"
data-bg-color="#<?=$color["hex"]?>" <?=($color['mark']) ? "data-icon='fa-ellipsis-h'" : ""?>
<?=($name == $item->value->value_string) ? "selected='selected'" : ""?>
>
<?=ucfirst($name)?>
<?php endif; ?>
<?php endforeach; ?>
</select>

View File

@@ -19,7 +19,8 @@
<script type="text/javascript">
$(".selectpicker").selectpicker({
iconBase: "fas",
tickIcon: "check"
tickIcon: "check",
sanitize: false
});
</script>
</body>

View File

@@ -35,10 +35,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;

View File

@@ -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 "<pre>$class</pre>\n";
}
exit;
}
protected function pdfAction() {
$order = new Order(7);
$owner = new Address(1);

View File

@@ -42,6 +42,21 @@ 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
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];
header("Access-Control-Allow-Origin: ".$origin_proto."://".$origin_hostname);
$this->return(mfResponse::Ok());
}
}
// run Controllers init() function
if(method_exists($this,"init")) {
@@ -58,12 +73,6 @@ class mfBaseApicontroller {
// 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());
}
// route to action
$this->route = $params['apicall'].((array_key_exists("apiparams", $params)) ? $params['apiparams'] : "");
$responseData = $this->runRoute($this->route);
@@ -303,7 +312,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;
}
@@ -321,7 +330,6 @@ class mfBaseApicontroller {
$request_origin['hostname'] = $m[2];
}
//var_dump($request_origin);exit;
foreach($this->allowed_origins as $origin) {
//echo $origin." -> ".$_SERVER["HTTP_HOST"];

View File

@@ -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,231 @@ td.controls {
border-color: #FF0088;
}
.btn-outline-natur {
color: #000000;
background-color: #FFFFCC;
}
.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;