Add wrappe for Phoenix.Form.submit
This commit is contained in:
parent
a372a64858
commit
dd8edc025d
2 changed files with 102 additions and 0 deletions
|
@ -100,6 +100,54 @@ defmodule Dsl.Form do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
Please see `Phoenix.HTML.Form.submit/1` for details.
|
||||||
|
"""
|
||||||
|
defmacro submit(do: block) do
|
||||||
|
quote do
|
||||||
|
{:safe, content} =
|
||||||
|
htm do
|
||||||
|
unquote(block)
|
||||||
|
end
|
||||||
|
|
||||||
|
{:safe, input} = Phoenix.HTML.Form.submit(do: content)
|
||||||
|
|
||||||
|
Utils.put_buffer(var!(buff, Dsl.Tags), input)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
defmacro submit(value) do
|
||||||
|
quote do
|
||||||
|
{:safe, input} = Phoenix.HTML.Form.submit(unquote(value))
|
||||||
|
|
||||||
|
Utils.put_buffer(var!(buff, Dsl.Tags), input)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
Please see `Phoenix.HTML.Form.submit/1` for details.
|
||||||
|
"""
|
||||||
|
defmacro submit(opts, do: block) do
|
||||||
|
quote do
|
||||||
|
{:safe, content} =
|
||||||
|
htm do
|
||||||
|
unquote(block)
|
||||||
|
end
|
||||||
|
|
||||||
|
{:safe, input} = Phoenix.HTML.Form.submit(unquote(opts), do: content)
|
||||||
|
|
||||||
|
Utils.put_buffer(var!(buff, Dsl.Tags), input)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
defmacro submit(value, opts) do
|
||||||
|
quote do
|
||||||
|
{:safe, input} = Phoenix.HTML.Form.submit(unquote_splicing([value, opts]))
|
||||||
|
|
||||||
|
Utils.put_buffer(var!(buff, Dsl.Tags), input)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Please see `Phoenix.HTML.Form.label/2` for details.
|
Please see `Phoenix.HTML.Form.label/2` for details.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -463,6 +463,60 @@ defmodule Dsl.FormTest do
|
||||||
assert result =~ ~s{class="reset-styles"}
|
assert result =~ ~s{class="reset-styles"}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "generates a submit/1 input" do
|
||||||
|
{:safe, result} =
|
||||||
|
htm do
|
||||||
|
submit("Submit")
|
||||||
|
end
|
||||||
|
|
||||||
|
assert String.starts_with? result, ~s{<button}
|
||||||
|
assert result =~ ~s{type="submit}
|
||||||
|
assert result =~ ~s{Submit}
|
||||||
|
assert String.ends_with? result, ~s{</button>}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "generates a submit/1 input that takes a block" do
|
||||||
|
{:safe, result} =
|
||||||
|
htm do
|
||||||
|
submit do
|
||||||
|
text "Submit"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
assert String.starts_with? result, ~s{<button}
|
||||||
|
assert result =~ ~s{type="submit}
|
||||||
|
assert result =~ ~s{Submit}
|
||||||
|
assert String.ends_with? result, ~s{</button>}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "generates a submit/2 input that takes text and opts" do
|
||||||
|
{:safe, result} =
|
||||||
|
htm do
|
||||||
|
submit("Submit", class: "btn")
|
||||||
|
end
|
||||||
|
|
||||||
|
assert String.starts_with? result, ~s{<button}
|
||||||
|
assert result =~ ~s{type="submit}
|
||||||
|
assert result =~ ~s{class="btn"}
|
||||||
|
assert result =~ ~s{Submit}
|
||||||
|
assert String.ends_with? result, ~s{</button>}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "generates a submit/2 input that takes opts and a block" do
|
||||||
|
{:safe, result} =
|
||||||
|
htm do
|
||||||
|
submit class: "btn" do
|
||||||
|
text "Submit"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
assert String.starts_with? result, ~s{<button}
|
||||||
|
assert result =~ ~s{type="submit}
|
||||||
|
assert result =~ ~s{class="btn"}
|
||||||
|
assert result =~ ~s{Submit}
|
||||||
|
assert String.ends_with? result, ~s{</button>}
|
||||||
|
end
|
||||||
|
|
||||||
test "generates a phx_label/2 tag" do
|
test "generates a phx_label/2 tag" do
|
||||||
{:safe, result} =
|
{:safe, result} =
|
||||||
htm do
|
htm do
|
||||||
|
|
Reference in a new issue