element_meter.erl 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. -module(element_meter).
  2. %%-author('Vladimir Galunshchikov').
  3. -include_lib("nitro/include/nitro.hrl").
  4. -export([
  5. render_element/1
  6. ]).
  7. render_element(Record) ->
  8. List = [
  9. %% global
  10. {<<"accesskey">>, Record#meter.accesskey},
  11. {<<"class">>, Record#meter.class},
  12. {<<"contenteditable">>,
  13. case Record#meter.contenteditable of
  14. true -> "true";
  15. false -> "false";
  16. _ -> []
  17. end},
  18. {<<"contextmenu">>, Record#meter.contextmenu},
  19. {<<"dir">>,
  20. case Record#meter.dir of
  21. "ltr" -> "ltr";
  22. "rtl" -> "rtl";
  23. "auto" -> "auto";
  24. _ -> []
  25. end},
  26. {<<"draggable">>,
  27. case Record#meter.draggable of
  28. true -> "true";
  29. false -> "false";
  30. _ -> []
  31. end},
  32. {<<"dropzone">>, Record#meter.dropzone},
  33. {<<"hidden">>,
  34. case Record#meter.hidden of
  35. "hidden" -> "hidden";
  36. _ -> []
  37. end},
  38. {<<"id">>, Record#meter.id},
  39. {<<"lang">>, Record#meter.lang},
  40. {<<"spellcheck">>,
  41. case Record#meter.spellcheck of
  42. true -> "true";
  43. false -> "false";
  44. _ -> []
  45. end},
  46. {<<"style">>, Record#meter.style},
  47. {<<"tabindex">>, Record#meter.tabindex},
  48. {<<"title">>, Record#meter.title},
  49. {<<"translate">>,
  50. case Record#meter.contenteditable of
  51. "yes" -> "yes";
  52. "no" -> "no";
  53. _ -> []
  54. end},
  55. %% spec
  56. {<<"high">>, Record#meter.high},
  57. {<<"low">>, Record#meter.low},
  58. {<<"max">>, Record#meter.max},
  59. {<<"min">>, Record#meter.min},
  60. {<<"optimum">>, Record#meter.optimum},
  61. {<<"value">>, Record#meter.value} | Record#meter.data_fields
  62. ],
  63. wf_tags:emit_tag(<<"meter">>, nitro:render(Record#meter.body), List).