Browse Source

checkbox without label handling

SunRiseGC 3 years ago
parent
commit
a948f0a925
3 changed files with 11 additions and 9 deletions
  1. 1 1
      include/nitro.hrl
  2. 1 1
      mix.exs
  3. 9 7
      src/elements/input/element_checkbox.erl

+ 1 - 1
include/nitro.hrl

@@ -74,7 +74,7 @@
 % HTML Form inputs
 % HTML Form inputs
 -record(input,       {?ELEMENT_BASE(element_input), required, autocomplete, autofocus, disabled, form, name, value, type=[], checked=false, placeholder, min, max, pattern, accept}).
 -record(input,       {?ELEMENT_BASE(element_input), required, autocomplete, autofocus, disabled, form, name, value, type=[], checked=false, placeholder, min, max, pattern, accept}).
 -record(input_button,       {?ELEMENT_BASE(element_input_button),  autofocus, disabled, form, name, value}).
 -record(input_button,       {?ELEMENT_BASE(element_input_button),  autofocus, disabled, form, name, value}).
--record(checkbox,           {?ELEMENT_BASE(element_checkbox),  autofocus, checked=false, disabled, form, name, required, value}).
+-record(checkbox,           {?ELEMENT_BASE(element_checkbox),  autofocus, checked=false, disabled, form, name, required, value, label=true}).
 -record(color,           {?ELEMENT_BASE(element_color),  autocomplete, autofocus, disabled, form, list, name, value}).
 -record(color,           {?ELEMENT_BASE(element_color),  autocomplete, autofocus, disabled, form, list, name, value}).
 -record(date,           {?ELEMENT_BASE(element_date),  autocomplete, autofocus, disabled, form, list, max, min, name, step, readonly, required, value}).
 -record(date,           {?ELEMENT_BASE(element_date),  autocomplete, autofocus, disabled, form, list, max, min, name, step, readonly, required, value}).
 -record(datetime,           {?ELEMENT_BASE(element_datetime),  autocomplete, autofocus, disabled, form, list, max, min, name, step, readonly, required, value}).
 -record(datetime,           {?ELEMENT_BASE(element_datetime),  autocomplete, autofocus, disabled, form, list, max, min, name, step, readonly, required, value}).

+ 1 - 1
mix.exs

@@ -4,7 +4,7 @@ defmodule NITRO.Mixfile do
   def project do
   def project do
     [
     [
       app: :nitro,
       app: :nitro,
-      version: "7.2.0",
+      version: "7.2.1",
       description: "NITRO Nitrogen Web Framework",
       description: "NITRO Nitrogen Web Framework",
       package: package(),
       package: package(),
       deps: deps()
       deps: deps()

+ 9 - 7
src/elements/input/element_checkbox.erl

@@ -11,7 +11,7 @@ render_element(Record) ->
         [] -> ignore;
         [] -> ignore;
         Postback -> nitro:wire(#event { type=change, postback=Postback, target=Id, source=[Id|Record#checkbox.source], delegate=Record#checkbox.delegate })
         Postback -> nitro:wire(#event { type=change, postback=Postback, target=Id, source=[Id|Record#checkbox.source], delegate=Record#checkbox.delegate })
     end,
     end,
-   Label = [ wf_tags:emit_tag(<<"input">>, [], [
+   List = [
       % global
       % global
       {<<"accesskey">>, Record#checkbox.accesskey},
       {<<"accesskey">>, Record#checkbox.accesskey},
       {<<"class">>, Record#checkbox.class},
       {<<"class">>, Record#checkbox.class},
@@ -38,9 +38,11 @@ render_element(Record) ->
       {<<"required">>, if Record#checkbox.required == true -> "required"; true -> [] end},
       {<<"required">>, if Record#checkbox.required == true -> "required"; true -> [] end},
       {<<"type">>, <<"checkbox">>},
       {<<"type">>, <<"checkbox">>},
       {<<"value">>, Record#checkbox.value} | Record#checkbox.data_fields
       {<<"value">>, Record#checkbox.value} | Record#checkbox.data_fields
-      ]),
-      case Record#checkbox.body of [] -> []; B -> B end ],
-    wf_tags:emit_tag(<<"label">>, nitro:render(Label), [
-        {<<"class">>, Record#checkbox.class},
-        {<<"style">>, Record#checkbox.style},
-        {<<"for">>, Id} ]).
+      ],
+    case Record#checkbox.label of
+      true ->
+        wf_tags:emit_tag(<<"label">>, nitro:render([wf_tags:emit_tag(<<"input">>, [], List), Record#checkbox.body]), [
+          {<<"class">>, Record#checkbox.class},
+          {<<"style">>, Record#checkbox.style},
+          {<<"for">>, Id} ]);
+      false -> nitro:render(wf_tags:emit_tag(<<"input">>, Record#checkbox.body, List)) end.