element_video.erl 2.4 KB

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