mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-03 19:17:07 -05:00 
			
		
		
		
	[fix] make /stats more CSP compliant - bar graph
Replace bar graph's *styles* (see below) by CSP compliant implementation in
``searx/static/themes/__common__/less/stats.less`` ::
    ./simple/stats.html:49: <span style="width: calc(max(2px, 100%*{{ (engine_stat.result_count / engine_stats.max_result_count )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
    ./simple/stats.html:57: <span style="width: calc(max(2px, 100%*{{ (engine_stat.http / engine_stats.max_time )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
    ./simple/stats.html:58: <span style="width: calc(100%*{{ engine_stat.processing / engine_stats.max_time |round(3) }})" class="stacked-bar-chart-serie2"></span>{{- "" -}}
    ./oscar/stats.html:50:  <span style="width: calc(max(2px, 100%*{{ (engine_stat.result_count / engine_stats.max_result_count )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
    ./oscar/stats.html:58:  <span style="width: calc(max(2px, 100%*{{ (engine_stat.http / engine_stats.max_time )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
    ./oscar/stats.html:59:  <span style="width: calc(100%*{{ engine_stat.processing / engine_stats.max_time |round(3) }})" class="stacked-bar-chart-serie2"></span>{{- "" -}}
Reported-by: https://github.com/searxng/searxng/issues/57
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
			
			
This commit is contained in:
		
							parent
							
								
									965817f294
								
							
						
					
					
						commit
						cdfb4b7ff9
					
				
							
								
								
									
										38
									
								
								searx/static/themes/__common__/less/stats.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								searx/static/themes/__common__/less/stats.less
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
			
		||||
.bar-chart-value {
 | 
			
		||||
    width: 3em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bar-chart-graph {
 | 
			
		||||
    width: 300px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bar-chart-bar {
 | 
			
		||||
    border: 3px solid #5bc0de;
 | 
			
		||||
    margin: 1px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bar-chart-serie1 {
 | 
			
		||||
    border: 3px solid #5bc0de;
 | 
			
		||||
    margin: 1px 0;
 | 
			
		||||
    float: left;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bar-chart-serie2 {
 | 
			
		||||
    border: 3px solid #deb15b;
 | 
			
		||||
    margin: 1px 0;
 | 
			
		||||
    float: left;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bar0{
 | 
			
		||||
    width: 0;
 | 
			
		||||
    border: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.generate-bar(100);
 | 
			
		||||
 | 
			
		||||
.generate-bar(@n, @i: 1) when (@i =< @n) {
 | 
			
		||||
  .bar@{i} {
 | 
			
		||||
    width: (@i * 100% / @n);
 | 
			
		||||
  }
 | 
			
		||||
  .generate-bar(@n, (@i + 1));
 | 
			
		||||
}
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
@import "../logicodev/variables.less";
 | 
			
		||||
@import "../../../../__common__/less/new_issue.less";
 | 
			
		||||
@import "../../../../__common__/less/stats.less";
 | 
			
		||||
 | 
			
		||||
@stacked-bar-chart: rgb(213, 216, 215, 1);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
@import "variables.less";
 | 
			
		||||
@import "../../../../__common__/less/new_issue.less";
 | 
			
		||||
@import "../../../../__common__/less/stats.less";
 | 
			
		||||
 | 
			
		||||
@import "navbar.less";
 | 
			
		||||
@import "footer.less";
 | 
			
		||||
 | 
			
		||||
@ -89,17 +89,3 @@ td:hover .engine-tooltip, th:hover .engine-tooltip, .engine-tooltip:hover {
 | 
			
		||||
    padding: 0.4rem 0;
 | 
			
		||||
    width: 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.stacked-bar-chart-serie1 {
 | 
			
		||||
    .stacked-bar-chart-base();
 | 
			
		||||
    background: #5bc0de;
 | 
			
		||||
    box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
 | 
			
		||||
    padding: 0.4rem 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.stacked-bar-chart-serie2 {
 | 
			
		||||
    .stacked-bar-chart-base();
 | 
			
		||||
    background: #deb15b;
 | 
			
		||||
    box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
 | 
			
		||||
    padding: 0.4rem 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
@import "variables.less";
 | 
			
		||||
@import "../../../../__common__/less/new_issue.less";
 | 
			
		||||
@import "../../../../__common__/less/stats.less";
 | 
			
		||||
 | 
			
		||||
@import "footer.less";
 | 
			
		||||
@import "checkbox.less";
 | 
			
		||||
 | 
			
		||||
@ -77,18 +77,3 @@ th:hover .engine-tooltip, td:hover .engine-tooltip, .engine-tooltip:hover {
 | 
			
		||||
    padding: 0.4rem 0;
 | 
			
		||||
    width: 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.stacked-bar-chart-serie1 {
 | 
			
		||||
    .stacked-bar-chart-base();
 | 
			
		||||
    background: #5bc0de;
 | 
			
		||||
    box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
 | 
			
		||||
    padding: 0.4rem 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.stacked-bar-chart-serie2 {
 | 
			
		||||
    .stacked-bar-chart-base();
 | 
			
		||||
    background: #deb15b;
 | 
			
		||||
    box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
 | 
			
		||||
    padding: 0.4rem 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,7 @@
 | 
			
		||||
@stacked-bar-chart: rgb(0, 0, 0);
 | 
			
		||||
 | 
			
		||||
@import "../../__common__/less/new_issue.less";
 | 
			
		||||
@import "../../__common__/less/stats.less";
 | 
			
		||||
 | 
			
		||||
@import "normalize.less";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -551,17 +551,3 @@ th:hover .engine-tooltip, td:hover .engine-tooltip, .engine-tooltip:hover {
 | 
			
		||||
  padding: 0.4rem 0;
 | 
			
		||||
  width: 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.stacked-bar-chart-serie1 {
 | 
			
		||||
  .stacked-bar-chart-base();
 | 
			
		||||
  background: #5bc0de;
 | 
			
		||||
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
 | 
			
		||||
  padding: 0.4rem 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.stacked-bar-chart-serie2 {
 | 
			
		||||
  .stacked-bar-chart-base();
 | 
			
		||||
  background: #deb15b;
 | 
			
		||||
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
 | 
			
		||||
  padding: 0.4rem 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -45,19 +45,19 @@
 | 
			
		||||
                            </td>
 | 
			
		||||
                            <td>
 | 
			
		||||
                                {%- if engine_stat.result_count -%}
 | 
			
		||||
                                <span class="stacked-bar-chart-value">{{- engine_stat.result_count | int -}}</span>{{- "" -}}
 | 
			
		||||
                                <span class="stacked-bar-chart" aria-hidden="true">{{- "" -}}
 | 
			
		||||
                                    <span style="width: calc(max(2px, 100%*{{ (engine_stat.result_count / engine_stats.max_result_count )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
 | 
			
		||||
                                </span>
 | 
			
		||||
                                <div class="bar-chart-value">{{- engine_stat.result_count | int -}}</div>{{- "" -}}
 | 
			
		||||
				<div class="bar-chart-graph" aria-hidden="true">
 | 
			
		||||
				  <div class="bar-chart-bar bar{{ (100 * engine_stat.result_count / engine_stats.max_result_count)|round }}"></div>{{- "" -}}
 | 
			
		||||
				</div>
 | 
			
		||||
                                {%- endif -%}
 | 
			
		||||
                            </td>
 | 
			
		||||
                            <td>
 | 
			
		||||
                                {%- if engine_stat.total -%}
 | 
			
		||||
                                <span class="stacked-bar-chart-value">{{- engine_stat.total | round(1) -}}</span>{{- "" -}}
 | 
			
		||||
                                <span class="stacked-bar-chart" aria-labelledby="{{engine_stat.name}}_time" aria-hidden="true">{{- "" -}}
 | 
			
		||||
                                    <span style="width: calc(max(2px, 100%*{{ (engine_stat.http / engine_stats.max_time )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
 | 
			
		||||
                                    <span style="width: calc(100%*{{ engine_stat.processing / engine_stats.max_time |round(3) }})" class="stacked-bar-chart-serie2"></span>{{- "" -}}
 | 
			
		||||
                                </span>{{- "" -}}
 | 
			
		||||
                                <div class="bar-chart-value">{{- engine_stat.total | round(1) -}}</div>{{- "" -}}
 | 
			
		||||
				<div class="bar-chart-graph" aria-labelledby="{{engine_stat.name}}_time" aria-hidden="true">
 | 
			
		||||
                                  <div class="bar-chart-serie1 bar{{ (100 * engine_stat.http / engine_stats.max_time)|round }}"></div>{{- "" -}}
 | 
			
		||||
                                  <div class="bar-chart-serie2 bar{{ (100 * engine_stat.processing / engine_stats.max_time)|round }}"></div>{{- "" -}}
 | 
			
		||||
				</div>
 | 
			
		||||
                                <div class="engine-tooltip text-left" role="tooltip" id="{{engine_stat.name}}_time">{{- "" -}}
 | 
			
		||||
                                    <table class="table table-striped">
 | 
			
		||||
                                        <tr>
 | 
			
		||||
 | 
			
		||||
@ -44,19 +44,21 @@
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            {%- if engine_stat.result_count -%}
 | 
			
		||||
            <span class="stacked-bar-chart-value">{{- engine_stat.result_count | int -}}</span>{{- "" -}}
 | 
			
		||||
            <span class="stacked-bar-chart" aria-hidden="true">{{- "" -}}
 | 
			
		||||
                <span style="width: calc(max(2px, 100%*{{ (engine_stat.result_count / engine_stats.max_result_count )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
 | 
			
		||||
            </span>
 | 
			
		||||
 | 
			
		||||
            <div class="bar-chart-value">{{- engine_stat.result_count | int -}}</div>{{- "" -}}
 | 
			
		||||
	    <div class="bar-chart-graph" aria-hidden="true">
 | 
			
		||||
	      <div class="bar-chart-bar bar{{ (100 * engine_stat.result_count / engine_stats.max_result_count)|round }}"></div>{{- "" -}}
 | 
			
		||||
	    </div>
 | 
			
		||||
            {%- endif -%}
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            {%- if engine_stat.total -%}
 | 
			
		||||
            <span class="stacked-bar-chart-value">{{- engine_stat.total | round(1) -}}</span>{{- "" -}}
 | 
			
		||||
            <span class="stacked-bar-chart" aria-labelledby="{{engine_stat.name}}_time" aria-hidden="true">{{- "" -}}
 | 
			
		||||
                <span style="width: calc(max(2px, 100%*{{ (engine_stat.http / engine_stats.max_time )|round(3) }}))" class="stacked-bar-chart-serie1"></span>{{- "" -}}
 | 
			
		||||
                <span style="width: calc(100%*{{ engine_stat.processing / engine_stats.max_time |round(3) }})" class="stacked-bar-chart-serie2"></span>{{- "" -}}
 | 
			
		||||
            </span>{{- "" -}}
 | 
			
		||||
 | 
			
		||||
            <div class="bar-chart-value">{{- engine_stat.total | round(1) -}}</div>{{- "" -}}
 | 
			
		||||
	    <div class="bar-chart-graph" aria-labelledby="{{engine_stat.name}}_time" aria-hidden="true">
 | 
			
		||||
              <div class="bar-chart-serie1 bar{{ (100 * engine_stat.http / engine_stats.max_time)|round }}"></div>{{- "" -}}
 | 
			
		||||
              <div class="bar-chart-serie2 bar{{ (100 * engine_stat.processing / engine_stats.max_time)|round }}"></div>{{- "" -}}
 | 
			
		||||
	    </div>
 | 
			
		||||
            <div class="engine-tooltip" role="tooltip" id="{{engine_stat.name}}_time">{{- "" -}}
 | 
			
		||||
                <table>
 | 
			
		||||
                    <tr>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user