element_datetime_local.erl 3.1 KB

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