users.html 4.0 KB

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