Skip to content

Commit 64ddf4b

Browse files
committed
Fixes for single view scripts
1 parent 0263754 commit 64ddf4b

16 files changed

+94
-101
lines changed
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
package io.udash.demos.jquery.views
22

3-
import org.scalajs.dom.Event
3+
import org.scalajs.dom.{Element, Event}
44

55
abstract class FunctionView {
66

77
import scalatags.JsDom.all._
88

9-
protected def content: Modifier
9+
protected val content: Element
1010

1111
protected def script: () => Any
1212

1313
final def getTemplate: Modifier =
1414
div(
1515
content,
16-
button(
16+
h3(button(
17+
marginTop := 10.px,
1718
onclick := ((_: Event) => {
1819
script()
1920
false
2021
})
21-
)("Run script")
22+
)("Run script"))
2223
)
2324
}

example/src/main/scala/io/udash/demos/jquery/views/IndexView.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ object IndexView {
2525

2626
final val content = div(
2727
"Take a look at following demos:",
28-
demos.map(demo => div(demo.getTemplate)),
28+
demos.map(demo => Seq(hr, div(demo.getTemplate))),
2929
)
3030
}

example/src/main/scala/io/udash/demos/jquery/views/functions/AddBackView.scala

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,15 @@ object AddBackView extends FunctionView {
99

1010
import scalatags.JsDom.all._
1111

12-
override protected def content = div(cls := "demo")(
12+
override protected val content = div(cls := "addback")(
1313
h3(".addBack() & .addClass()"),
1414
tags2.style(
15-
""".demo p, .demo div {
16-
| margin: 5px;
17-
| padding: 5px;
18-
|}
19-
|.border {
15+
"""
16+
|.addback .border {
2017
| border: 2px solid red;
2118
|}
22-
|.background {
19+
|.addback .background {
2320
| background: yellow;
24-
|}
25-
|.left, .right {
26-
| width: 45%;
27-
| float: left;
28-
|}
29-
|.right {
30-
| margin-left: 3%;
3121
|}""".stripMargin
3222
),
3323
div(cls := "left")(
@@ -44,15 +34,15 @@ object AddBackView extends FunctionView {
4434
p("Second Paragraph")
4535
)
4636
)
47-
)
37+
).render
4838

4939
override protected def script = () => {
50-
jQ(".demo div.left, .demo div.right").find("div, div > p").addClass("border")
40+
jQ("div.left, div.right", content).find("div, div > p").addClass("border")
5141

5242
// First Example
53-
jQ(".demo div.before-addback").find("p").addClass("background")
43+
jQ("div.before-addback", content).find("p").addClass("background")
5444

5545
// Second Example
56-
jQ(".demo div.after-addback").find("p").addBack().addClass("background")
46+
jQ("div.after-addback", content).find("p").addBack().addClass("background")
5747
}
5848
}

example/src/main/scala/io/udash/demos/jquery/views/functions/AddView.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@ object AddView extends FunctionView {
99

1010
import scalatags.JsDom.all._
1111

12-
override protected def content = div(cls := "demo")(
12+
override protected val content = div(cls := "addview")(
1313
h3(".add() & .css()"),
1414
tags2.style(
15-
""".demo div {
15+
""".addview div {
1616
| width: 60px;
1717
| height: 60px;
1818
| margin: 10px;
1919
| float: left;
2020
|}
21-
|.demo p {
21+
|.addview p {
2222
| clear: left;
2323
| font-weight: bold;
2424
| font-size: 16px;
@@ -34,11 +34,11 @@ object AddView extends FunctionView {
3434
div(),
3535
div(),
3636
p("Added this... (notice no border)")
37-
)
37+
).render
3838

3939
override protected def script = () => {
40-
jQ(".demo div").css("border", "2px solid red")
41-
.add(".demo p")
40+
jQ("div", content).css("border", "2px solid red")
41+
.add("p", content)
4242
.css("background", "yellow")
4343
}
4444
}

example/src/main/scala/io/udash/demos/jquery/views/functions/AfterBeforeView.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ object AfterBeforeView extends FunctionView {
88

99
import scalatags.JsDom.all._
1010

11-
override protected def content = div(cls := "demo")(
11+
override protected val content = div(
1212
h3(".after()"),
1313
div(
1414
p(cls := "after")("I would like to say: ")
@@ -17,10 +17,10 @@ object AfterBeforeView extends FunctionView {
1717
div(
1818
p(cls := "before")("is what I said...")
1919
)
20-
)
20+
).render
2121

2222
override protected def script = () => {
23-
jQ(".after").after("<b>Hello</b>")
24-
jQ(".before").before("<b>Hello</b>")
23+
jQ(".after", content).after("<b>Hello</b>")
24+
jQ(".before", content).before("<b>Hello</b>")
2525
}
2626
}

example/src/main/scala/io/udash/demos/jquery/views/functions/AnimateView.scala

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ object AnimateView extends FunctionView {
1010

1111
import scalatags.JsDom.all._
1212

13-
override protected def content = div(cls := "demo")(
13+
override protected val content = div(cls := "animate")(
1414
h3(".animate() & .click()"),
1515
tags2.style(
16-
""".demo div {
16+
""".animate div {
1717
| background-color: #bca;
1818
| width: 200px;
1919
| height: 1.1em;
@@ -22,7 +22,7 @@ object AnimateView extends FunctionView {
2222
| margin: 3px;
2323
| font-size: 14px;
2424
|}
25-
|.demo button {
25+
|.animate button {
2626
| font-size: 14px;
2727
|}""".stripMargin
2828
),
@@ -32,11 +32,11 @@ object AnimateView extends FunctionView {
3232
button(id := "go4", disabled := "disabled")("» Reset"),
3333
div(id := "block1")("Block1"),
3434
div(id := "block2")("Block2")
35-
)
35+
).render
3636

3737
override protected def script = () => {
38-
jQ("#go1").on(EventName.click, (_: Element, _: JQueryEvent) => {
39-
jQ("#block1")
38+
jQ("#go1", content).on(EventName.click, (_: Element, _: JQueryEvent) => {
39+
jQ("#block1", content)
4040
.animate(Map(
4141
"width" -> "90%"
4242
), AnimationOptions(
@@ -47,27 +47,27 @@ object AnimateView extends FunctionView {
4747
.animate(Map("borderRightWidth" -> "15px"), 1500)
4848
})
4949

50-
jQ("#go2").on(EventName.click, (_: Element, _: JQueryEvent) => {
51-
jQ("#block2")
50+
jQ("#go2", content).on(EventName.click, (_: Element, _: JQueryEvent) => {
51+
jQ("#block2", content)
5252
.animate(Map("width" -> "90%"), 1000)
5353
.animate(Map("fontSize" -> "24px"), 1000)
5454
.animate(Map("borderLeftWidth" -> "15px"), 1000)
5555
})
5656

57-
jQ("#go3").on(EventName.click, (_: Element, _: JQueryEvent) => {
58-
jQ("#go1").add("#go2").trigger("click")
57+
jQ("#go3", content).on(EventName.click, (_: Element, _: JQueryEvent) => {
58+
jQ("#go1", content).add("#go2", content).trigger("click")
5959
})
6060

61-
jQ("#go4").on(EventName.click, (_: Element, _: JQueryEvent) => {
61+
jQ("#go4", content).on(EventName.click, (_: Element, _: JQueryEvent) => {
6262
// TODO: It does not work without explicit Map elements type
6363
import scala.scalajs.js.`|`
64-
jQ("div").css(Map[String, String | Int | Double | Boolean](
64+
jQ("div", content).css(Map[String, String | Int | Double | Boolean](
6565
"width" -> "",
6666
"fontSize" -> "",
6767
"borderWidth" -> ""
6868
))
6969
})
7070

71-
jQ(".demo button").prop("disabled", "")
71+
jQ("button", content).prop("disabled", "")
7272
}
7373
}

example/src/main/scala/io/udash/demos/jquery/views/functions/AppendPrependView.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ object AppendPrependView extends FunctionView {
88

99
import scalatags.JsDom.all._
1010

11-
override protected def content = div(cls := "demo")(
11+
override protected val content = div(
1212
h3(".append()"),
1313
p(id := "append")("I would like to say: "),
1414
h3(".prepend()"),
1515
p(id := "prepend")("amigo!")
16-
)
16+
).render
1717

1818
override protected def script = () => {
19-
jQ("#append").append("<b>hello</b>")
20-
jQ("#prepend").prepend("<i>Hello</i> ")
19+
jQ("#append", content).append("<b>hello</b>")
20+
jQ("#prepend", content).prepend("<i>Hello</i> ")
2121
}
2222
}

example/src/main/scala/io/udash/demos/jquery/views/functions/AttrView.scala

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,44 @@ package io.udash.demos.jquery.views.functions
22

33
import io.udash.demos.jquery.views.FunctionView
44
import io.udash.wrappers.jquery._
5+
import org.scalajs.dom.html.Div
56
import org.scalajs.dom.{Element, Event}
67

78
/** Based on examples from: <a href="http://api.jquery.com/animate/">jQuery Docs</a>. */
89
object AttrView extends FunctionView {
910

1011
import scalatags.JsDom.all._
1112

12-
override protected def content = div(cls := "demo")(
13+
override protected val content: Div = div(
1314
h3(".attr() & .prop()"),
1415
input(id := "check1", tpe := "checkbox", checked := "checked"),
1516
label(`for` := "check1")("Check me"),
1617
p(),
1718
button(onclick := ((_: Event) => {
18-
jQ(".demo input").attr("data-checked", "checked").trigger("change")
19+
jQ("input", content).attr("data-checked", "checked").trigger("change")
1920
false
2021
}))(".attr(\"data-checked\", \"checked\")"),
2122
button(onclick := ((_: Event) => {
22-
jQ(".demo input").attr("data-checked", "").trigger("change")
23+
jQ("input", content).attr("data-checked", "").trigger("change")
2324
false
2425
}))(".attr(\"data-checked\", \"\")"),
2526
button(onclick := ((_: Event) => {
26-
jQ(".demo input").attr("data-checked", null).trigger("change")
27+
jQ("input", content).attr("data-checked", null).trigger("change")
2728
false
2829
}))(".attr(\"data-checked\", null)"), br(),
2930
button(onclick := ((_: Event) => {
30-
jQ(".demo input").prop("checked", true).trigger("change")
31+
jQ("input", content).prop("checked", true).trigger("change")
3132
false
3233
}))(".prop(\"checked\", true)"),
3334
button(onclick := ((_: Event) => {
34-
jQ(".demo input").prop("checked", false).trigger("change")
35+
jQ("input", content).prop("checked", false).trigger("change")
3536
false
3637
}))(".prop(\"checked\", false)")
37-
)
38+
).render
3839

3940
override protected def script = () => {
40-
jQ(".demo input").on(EventName.change, (input: Element, _: JQueryEvent) => {
41-
jQ(".demo p").html(
41+
jQ("input", content).on(EventName.change, (input: Element, _: JQueryEvent) => {
42+
jQ("p", content).html(
4243
s""".attr('data-checked'): ${jQ(input).attr("data-checked")}<br/>
4344
|.prop('checked'): ${jQ(input).prop("checked")}<br/>
4445
|.is(':checked'): ${jQ(input).is(":checked")}""".stripMargin

example/src/main/scala/io/udash/demos/jquery/views/functions/CallbacksView.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,31 @@ object CallbacksView extends FunctionView {
1010

1111
import scalatags.JsDom.all._
1212

13-
override protected def content = div(cls := "demo")(
13+
override protected val content = div(
1414
h3("Callbacks"),
1515
ul(id := "plus"),
1616
ul(id := "minus"),
1717
ul(id := "mul"),
1818
ul(id := "div")
19-
)
19+
).render
2020

2121
override protected def script = () => {
2222
val callbacks = jQ.callbacks[js.Function1[(Int, Int), js.Any], (Int, Int)]()
2323
callbacks.add((t: (Int, Int)) => {
2424
val (a, b) = t
25-
jQ("#plus").append(li(s"$a + $b = ${a + b}").render)
25+
jQ("#plus", content).append(li(s"$a + $b = ${a + b}").render)
2626
})
2727
callbacks.add((t: (Int, Int)) => {
2828
val (a, b) = t
29-
jQ("#minus").append(li(s"$a - $b = ${a - b}").render)
29+
jQ("#minus", content).append(li(s"$a - $b = ${a - b}").render)
3030
})
3131
callbacks.add((t: (Int, Int)) => {
3232
val (a, b) = t
33-
jQ("#mul").append(li(s"$a * $b = ${a*b}").render)
33+
jQ("#mul", content).append(li(s"$a * $b = ${a * b}").render)
3434
})
3535
callbacks.add((t: (Int, Int)) => {
3636
val (a, b) = t
37-
jQ("#div").append(li(s"$a / $b = ${a/b}").render)
37+
jQ("#div", content).append(li(s"$a / $b = ${a / b}").render)
3838
})
3939

4040
callbacks.fire((1, 1))

example/src/main/scala/io/udash/demos/jquery/views/functions/ChildrenView.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ object ChildrenView extends FunctionView {
88

99
import scalatags.JsDom.all._
1010

11-
override protected def content = div(cls := "demo")(
11+
override protected val content = div(
1212
h3(".children()"),
1313
div(
1414
span("Hello"),
1515
p(cls := "selected")("Hello again"),
1616
div(cls := "selected")("and again"),
1717
p("and one last time.")
1818
)
19-
)
19+
).render
2020

2121
override protected def script = () => {
22-
jQ(".demo div").children().css("color", "blue")
23-
jQ(".demo div").children(".selected").css("border-bottom", "3px double red")
24-
jQ(".demo div").children("div.selected").css("border-top", "1px dashed green")
22+
jQ("div", content).children().css("color", "blue")
23+
jQ("div", content).children(".selected").css("border-bottom", "3px double red")
24+
jQ("div", content).children("div.selected").css("border-top", "1px dashed green")
2525
}
2626
}

example/src/main/scala/io/udash/demos/jquery/views/functions/DataView.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,20 @@ object DataView extends FunctionView {
88

99
import scalatags.JsDom.all._
1010

11-
override protected def content = div(cls := "demo")(
11+
override protected val content = div(
1212
h3(".data()"),
1313
div(
1414
"The values stored were ",
1515
span("_"),
1616
" and ",
1717
span("_")
1818
)
19-
)
19+
).render
2020

2121
override protected def script = () => {
22-
jQ(".demo div").data("test", Map("first" -> 16, "last" -> "pizza!"))
23-
val data: Map[String, Any] = jQ(".demo div").data("test").get.asInstanceOf[Map[String, Any]]
24-
jQ(".demo div span:first").text(data.get("first").get.toString)
25-
jQ(".demo div span:last").text(data.get("last").get.toString)
22+
jQ("div", content).data("test", Map("first" -> 16, "last" -> "pizza!"))
23+
val data: Map[String, Any] = jQ("div", content).data("test").get.asInstanceOf[Map[String, Any]]
24+
jQ("div span:first", content).text(data.get("first").get.toString)
25+
jQ("div span:last", content).text(data.get("last").get.toString)
2626
}
2727
}

0 commit comments

Comments
 (0)