element_password.erl 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. -module(element_password).
  2. %%-author('Vladimir Galunshchikov').
  3. -include_lib("nitro/include/nitro.hrl").
  4. -compile([export_all, nowarn_export_all]).
  5. render_element(Record) ->
  6. Id = case Record#password.postback of
  7. undefined -> Record#password.id;
  8. Postback ->
  9. ID0 = case Record#password.id of
  10. undefined -> nitro:temp_id();
  11. I -> I
  12. end,
  13. nitro:wire( #event{type = click, postback = Postback, target = ID0,
  14. source = Record#password.source, delegate = Record#password.delegate} ),
  15. ID0
  16. end,
  17. List = [
  18. %% global
  19. {<<"accesskey">>, Record#password.accesskey},
  20. {<<"class">>, Record#password.class},
  21. {<<"contenteditable">>,
  22. case Record#password.contenteditable of
  23. true -> "true";
  24. false -> "false";
  25. _ -> undefined
  26. end},
  27. {<<"contextmenu">>, Record#password.contextmenu},
  28. {<<"dir">>,
  29. case Record#password.dir of
  30. "ltr" -> "ltr";
  31. "rtl" -> "rtl";
  32. "auto" -> "auto";
  33. _ -> undefined
  34. end},
  35. {<<"draggable">>,
  36. case Record#password.draggable of
  37. true -> "true";
  38. false -> "false";
  39. _ -> undefined
  40. end},
  41. {<<"dropzone">>, Record#password.dropzone},
  42. {<<"hidden">>,
  43. case Record#password.hidden of
  44. "hidden" -> "hidden";
  45. _ -> undefined
  46. end},
  47. {<<"id">>, Id},
  48. {<<"lang">>, Record#password.lang},
  49. {<<"spellcheck">>,
  50. case Record#password.spellcheck of
  51. true -> "true";
  52. false -> "false";
  53. _ -> undefined
  54. end},
  55. {<<"style">>, Record#password.style},
  56. {<<"tabindex">>, Record#password.tabindex},
  57. {<<"title">>, Record#password.title},
  58. {<<"translate">>,
  59. case Record#password.contenteditable of
  60. "yes" -> "yes";
  61. "no" -> "no";
  62. _ -> undefined
  63. end},
  64. %% spec
  65. {<<"autocomplete">>,
  66. case Record#password.autocomplete of
  67. true -> "on";
  68. false -> "off";
  69. _ -> undefined
  70. end},
  71. {<<"autofocus">>,
  72. case Record#password.autofocus of
  73. true -> "autofocus";
  74. _ -> undefined
  75. end},
  76. {<<"disabled">>,
  77. case Record#password.disabled of
  78. true -> "disabled";
  79. _ -> undefined
  80. end},
  81. {<<"form">>, Record#password.form},
  82. {<<"maxlength">>, Record#password.maxlength},
  83. {<<"name">>, Record#password.name},
  84. {<<"pattern">>, Record#password.pattern},
  85. {<<"placeholder">>, Record#password.placeholder},
  86. {<<"readonly">>,
  87. case Record#password.readonly of
  88. true -> "readonly";
  89. _ -> undefined
  90. end},
  91. {<<"required">>,
  92. case Record#password.required of
  93. true -> "required";
  94. _ -> undefined
  95. end},
  96. {<<"size">>, Record#password.size},
  97. {<<"type">>, <<"password">>},
  98. {<<"value">>, Record#password.value} | Record#password.data_fields
  99. ],
  100. wf_tags:emit_tag(<<"input">>, nitro:render(Record#password.body), List).