-
Notifications
You must be signed in to change notification settings - Fork 0
/
Calc.txt
87 lines (71 loc) · 1.47 KB
/
Calc.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package praxkit
import org.scalajs.dom
import dom.html
import scalajs.js.annotation._
import scalatags.JsDom.all._
@JSExportTopLevel("Calc")
object Calc {
@JSExport
def sayHello(): Unit = {
println("Hello world!")
}
// -- view
@JSExport
def main(target: html.Div): Unit = {
target.appendChild(
div(
h1(`class`:="display-5")("Hello Calc!"),
p(
"""
Wie viele Sitzungen, Behandlungen, Konsultationen
habe ich pro Monat?
"""
),
div(cls := "inputfields")(
span(option, " Anzahl Sitzungen pro Monat"),
div(output),
div(
p( "Preis ",
span(
price(1 , false).toString
)
)
)
)
)
).render
}
val checkbox = input(
`type`:="checkbox"
).render
val option = input(
`type` := "text",
placeholder := "Wochen Ferien",
value:= 4,
maxlength := "4",
size := "4"
).render
}
val output = span.render
// -- controller
def str2Int(input: String): Int ={
input match {
case i: String => ???
}
}
checkbox.onkeyup = (e: dom.Event) => {
output.textContent =
checkbox.value.toUpperCase
}
// -- model
@JSExport
def price(
number: Int,
withCalendar: Boolean): Double = {
val unitprice = withCalendar match {
case true => 100
case _ => 85
}
number * unitprice / 100
}
}