users.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. {% extends base %}
  2. {% block content %}
  3. {% import "macros/action_icons_static.html" as icons with context %}
  4. <span class="title" role="main"><h2>{% block title %}Access User Profiles{% endblock %}</h2></span>
  5. <div class="content-container content">
  6. <article>
  7. <div><a href="#" id="a_add_user">{{ icons.add_svg() }}</a></div>
  8. {% if users %}
  9. <div class="table-container">
  10. <table id="tbl_users" class="data-table">
  11. <thead>
  12. <tr>
  13. <th>User ID</th><th>Admin activities</th><th>Capture activities</th><th style="font-size: smaller;">[actions]</th>
  14. </tr>
  15. </thead>
  16. <tbody>
  17. {% for user in users %}
  18. <tr>
  19. <td>{{ user.v_user_id }}</td><td>{{ user.bl_admin }}</td><td>{{ user.bl_capture }}</td><td><a href="#{{ user.id }}" class="a_edit_user" aria-label="edit user">{{ icons.edit_svg() }}</a>&nbsp;<a href="#{{ user.id }}" class="a_remove_user" aria-label="remove user">{{ icons.delete_svg() }}</a></td>
  20. </tr>
  21. {% endfor %}{# end of looping through users #}
  22. </tbody>
  23. </table><!-- end of tbl_users -->
  24. </div><!-- end of div.table-container -->
  25. {% endif %}{# end of checking if users exist #}
  26. </article>
  27. </div><!-- end of div.content -->
  28. {% from "macros/dialog.html" import dlg_prep with context %}
  29. {{ dlg_prep(["dlg_user"]) }}
  30. {# dlg divs below #}
  31. <div id="dlg_user" aria-labeledby="spn_user">
  32. <span id="spn_user">User details</span><br>
  33. <form action="{{ url_for("main.users") }}" method="post" id="frm_user">
  34. {{ form.csrf_token }}
  35. {{ form.hid_user_id }}
  36. <ul>
  37. <li>{{ form.txt_user_id.label }}&nbsp;{{ form.txt_user_id }}</li>
  38. <li><span style="font-size: smaller;">(leave both blank if editing, unless both match, to then reset password)</span><br>
  39. {{ form.txt_password.label }}&nbsp;{{ form.txt_password }}</li>
  40. <li>{{ form.txt_password_confirm.label }}&nbsp;{{ form.txt_password_confirm }}</li>
  41. <li>{{ form.chk_admin }}&nbsp;{{ form.chk_admin.label }}</li>
  42. <li>{{ form.chk_capture }}&nbsp;{{ form.chk_capture.label }}</li>
  43. </ul>
  44. <input type="submit" name="btn_save" value="Save">
  45. </form>
  46. </div><!-- end of dlg_user -->
  47. <script type="text/javascript">
  48. $(document).ready( function() {
  49. try {
  50. var s_dlg_user = $("#dlg_user").html();
  51. $("#a_add_user").click( function(event) {
  52. event.preventDefault();
  53. $("#dlg_user").html(s_dlg_user);
  54. $("#dlg_user").redraw();
  55. $("#dlg_user").dialog("open");
  56. });// end of a_add_user click event
  57. $("#tbl_users").on("click", ".a_edit_user", function(event) {
  58. event.preventDefault();
  59. var s_id = String($(this).attr("href")).replace("#", "");
  60. var s_url = "{{ url_for("main.user_details", i_user_id=99999) }}".replace("99999", s_id);
  61. $.get(s_url, function(o_data) {
  62. if (typeof(o_data)=="object") {
  63. $("#dlg_user").html(s_dlg_user);
  64. $("#dlg_user").redraw();
  65. $("#hid_user_id").val(s_id);
  66. $("#txt_user_id").val(o_data.v_user_id);
  67. $("#chk_admin").prop("checked", o_data.bl_admin);
  68. $("#chk_capture").prop("checked", o_data.bl_capture);
  69. $("#dlg_user").redraw();
  70. $("#dlg_user").dialog("open");
  71. }// end of typeof check against o_data
  72. });// end of .get
  73. });// end of .a_edit_user inside tbl_users click event
  74. $("#tbl_users").on("click", ".a_remove_user", function(event) {
  75. event.preventDefault();
  76. var s_id = String($(this).attr("href")).replace("#", "");
  77. var bl_confirm = confirm("Are you sure?");
  78. if (bl_confirm) {
  79. $("#hid_remove_user_id").val(s_id);
  80. document.getElementById("frm_remove_user").submit();
  81. }// end of checking confirmation
  82. });// end of .a_remove_user inside tbl_users click event
  83. window.setTimeout( function() {
  84. // do_alert("hello world");
  85. }, 300);
  86. } catch(e) {
  87. var s_err = String(e.name) + "\nmessage:" + String(e.message);
  88. s_err = (typeof(e.lineNumber)!="undefined") ? s_err + "\nline:" + String(e.lineNumber) : s_err;
  89. alert("Error! " + s_err);
  90. }//end of catch
  91. });// end of secondary document ready
  92. </script>
  93. <form action="{{ url_for("main.users") }}" method="post" id="frm_remove_user">
  94. {{ removal_form.csrf_token }}
  95. {{ removal_form.hid_remove_user_id }}
  96. </form>
  97. {% endblock %}