Visa   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 53
ccs 19
cts 19
cp 1
rs 10
c 0
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A värden() 0 4 1
A genvägar() 0 2 1
A visa() 0 26 3
1
<?php
2
3
/**
4
 * Klass Visa.
5
 * @author Niklas Dougherty
6
 */
7
8
declare(strict_types=1);
9
10
namespace Tips\Moduler\Distribution;
11
12
use Tips\Egenskaper\Eka;
13
14
/**
15
 * Klass Visa.
16
 * HTML-mall med erforderliga variabler.
17
 * Visar graf över distribution samt allmän fördelning.
18
 * Formulär med fält för värden samt genvägar.
19
 */
20
class Visa extends Prova {
21
	use Eka;
22
23
	/**
24
	 * Eka ut modulsida.
25
	 */
26 2
	protected function visa(string $klass, string $oddssumma, string $distgraf): void {
27
		/**
28
		 * Flik definieras med gridsystem.
29
		 * Parametrar i övre vänster grid, historik i högra.
30
		 * Grafer i nedre grid.
31
		 */
32 2
		echo <<< EOT
33 2
			<div id="modulflikar-{$klass}">
34
				<div class="distribution-grid">
35
					<div class="grid-intervall">
36 2
						<h1>{$this->eka($this->utdelning->har_tipsrad && $this->pröva_tipsrad($this->utdelning->tipsrad_012) ? '✅' : '❌')} $klass</h1>
37
						<p><strong>Distribution av radsumma för odds</strong></p>
38 2
						<p>Oddssumma: $oddssumma<br>
39 2
							Andel utfall: {$this->procentandel} %<br>
40 2
							Andelssumma: {$this->andelssumma} rader</p>
41 2
{$this->värden()}{$this->genvägar()}
42
					</div> <!-- grid-intervall -->
43
					<div class="grid-förekomst">
44 2
{$this->historik}					</div> <!-- grid-förekomst -->
45
					<div class="grid-distribution">
46
						<div>
47 2
							<p>$distgraf</p>
48
						</div>
49
					</div> <!-- grid-distribution -->
50
				</div> <!-- distribution-grid -->
51 2
			</div> <!-- modulflikar-$klass -->
52
53 2
EOT;
54
	}
55
56
	/**
57
	 * Eka ut värden.
58
	 * Fält för val av aktuell distribution samt grunddistribution.
59
	 */
60 2
	private function värden(): string {
61 2
		return <<< EOT
62 2
						<p>Aktuell distribution: <input class="nummer" type="number" min="0" autocomplete="off" id="distribution_minprocent" value="{$this->minprocent}"> – <input class="nummer" type="number" min="0" autocomplete="off" id="distribution_maxprocent" value="{$this->maxprocent}"> % ({$this->minsumma} – {$this->maxsumma}) <button id="grunddistribution">⇦ Grund</button></p>
63 2
						<p>Grundvärden: <input class="nummer" type="number" min="0" autocomplete="off" id="grunddistribution_minprocent" value="{$this->grund_minprocent}"> – <input class="nummer" type="number" min="0" autocomplete="off" id="grunddistribution_maxprocent" value="{$this->grund_maxprocent}"> %</p>
64 2
EOT;
65
	}
66
67
	/**
68
	 * Eka ut genvägar.
69
	 * Knappar för snabbval av intervall för distribution.
70
	 */
71 2
	private function genvägar(): string {
72 2
		return '
73
						<p><button class="distribution_schema" value="[0.1, 2]">0.1–2 (8–35&nbsp;%)</button>
74
							<button class="distribution_schema" value="[0.1, 3]">0.1–3 (8–41&nbsp;%)</button>
75
							<button class="distribution_schema" value="[0.1, 5]">0.1–5 (8–51&nbsp;%)</button>
76 2
							<button class="distribution_schema" value="[0.1, 10]">0.1–10 (8–65&nbsp;%)</button></p>';
77
	}
78
}
79