element_textarea.erl 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. -module(element_textarea).
  2. %%-author('Vladimir Galunshchikov').
  3. -include_lib("nitro/include/nitro.hrl").
  4. -export([
  5. render_element/1
  6. ]).
  7. render_element(Record) when Record#textarea.show_if == false -> [<<>>];
  8. render_element(Record) ->
  9. List = [
  10. %% global
  11. {<<"accesskey">>, Record#textarea.accesskey},
  12. {<<"class">>, Record#textarea.class},
  13. {<<"contenteditable">>,
  14. case Record#textarea.contenteditable of
  15. true -> "true";
  16. false -> "false";
  17. _ -> []
  18. end},
  19. {<<"contextmenu">>, Record#textarea.contextmenu},
  20. {<<"dir">>,
  21. case Record#textarea.dir of
  22. ltr -> "ltr";
  23. rtl -> "rtl";
  24. auto -> "auto";
  25. _ -> []
  26. end},
  27. {<<"draggable">>,
  28. case Record#textarea.draggable of
  29. true -> "true";
  30. false -> "false";
  31. _ -> []
  32. end},
  33. {<<"dropzone">>, Record#textarea.dropzone},
  34. {<<"hidden">>,
  35. case Record#textarea.hidden of
  36. true -> "hidden";
  37. _ -> []
  38. end},
  39. {<<"id">>, Record#textarea.id},
  40. {<<"lang">>, Record#textarea.lang},
  41. {<<"spellcheck">>,
  42. case Record#textarea.spellcheck of
  43. true -> "true";
  44. false -> "false";
  45. _ -> []
  46. end},
  47. {<<"style">>, Record#textarea.style},
  48. {<<"tabindex">>, Record#textarea.tabindex},
  49. {<<"title">>, Record#textarea.title},
  50. {<<"translate">>,
  51. case Record#textarea.contenteditable of
  52. "yes" -> "yes";
  53. "no" -> "no";
  54. _ -> []
  55. end},
  56. %% spec
  57. {<<"autofocus">>,
  58. case Record#textarea.autofocus of
  59. true -> "autofocus";
  60. _ -> []
  61. end},
  62. {<<"cols">>, Record#textarea.cols},
  63. {<<"dirname">>, Record#textarea.dirname},
  64. {<<"disabled">>,
  65. case Record#textarea.disabled of
  66. true -> "disabled";
  67. _ -> []
  68. end},
  69. {<<"form">>, Record#textarea.form},
  70. {<<"maxlength">>, Record#textarea.maxlength},
  71. {<<"name">>, Record#textarea.name},
  72. {<<"placeholder">>, Record#textarea.placeholder},
  73. {<<"readonly">>,
  74. case Record#textarea.readonly of
  75. true -> "readonly";
  76. _ -> []
  77. end},
  78. {<<"required">>,
  79. case Record#textarea.required of
  80. true -> "required";
  81. _ -> []
  82. end},
  83. {<<"rows">>, Record#textarea.rows},
  84. {<<"form">>, Record#textarea.wrap},
  85. {<<"value">>, Record#textarea.value},
  86. {<<"wrap">>,
  87. case Record#textarea.wrap of
  88. "hard" -> "hard";
  89. "soft" -> "soft";
  90. _ -> []
  91. end} | Record#textarea.data_fields
  92. ],
  93. wf_tags:emit_tag(<<"textarea">>, nitro:render(Record#textarea.body), List).