tenders.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. {% extends base %}
  2. {% block head_extra %}
  3. <style>
  4. .label {
  5. font-weight: bold;
  6. }
  7. </style>
  8. {% endblock %}
  9. {% block content %}
  10. {% import "macros/action_icons_static.html" as icons with context %}
  11. <span class="title"><h2>{% block title %}Tenders{% endblock %}</h2></span>
  12. <div class="content-container content">
  13. <div><a href="#" id="a_add_tender" aria-label="Add tender">{{ icons.add_svg }}</a></div>
  14. {% if tenders %}
  15. <h3>Tenders</h3>
  16. <div class="table-container">
  17. <table class="data-table" id="tbl_tenders">
  18. <thead>
  19. <tr>
  20. <th>Reference Number</th><th>Description</th><th style="font-size: smaller;">[actions]</th>
  21. </tr>
  22. </thead>
  23. {% for tender in tenders %}
  24. <tr>
  25. <td>{{ tender.v_reference_number }}</td><td>{{ tender.v_description }}</td>
  26. <td>
  27. <a href="#{{ tender.id }}" class="a_edit_tender">{{ icons.edit_svg() }}</a>
  28. <a href="#{{ tender.id }}" class="a_remove_tender">{{ icons.delete_svg() }}</a>
  29. </td>
  30. </tr>
  31. {% endfor %}{# end of looping through tenders #}
  32. </table><!-- end of tbl_tenders -->
  33. </div><!-- end of div.table-container -->
  34. <div class="paging">
  35. <div>Paging...</div>
  36. {#
  37. {% if paging.has_prev %}
  38. <!-- prev_num --><span><a class="a_page_number" href="#{{ paging.prev_num }}"{{ "<<" }}</a></span>
  39. {% endif %}
  40. #}
  41. {% for number in paging.iter_pages() %}
  42. {% if paging.page != number %}
  43. <!-- page_num --><span><a class="a_page_number" href="#{{ number }}">{{ number }}</a></span>&nbsp;&nbsp;
  44. {% else %}
  45. <!-- current_num --><span class="current-page-number">{{ number }}</span>&nbsp;&nbsp;
  46. {% endif %}
  47. {% endfor %}
  48. {#
  49. {% if paging.has_next %}
  50. <span>
  51. <!-- next_num --><a class="a_page_number" href="#{{ paging.next_num }}">{{ ">>" }}</a></span>
  52. {% endif %}
  53. #}
  54. </div><!-- end of div.paging -->
  55. {% endif %}{# end of checking if tenders existed #}
  56. </div><!-- end of div.content -->
  57. {% from "macros/dialog.html" import dlg_prep with context %}
  58. {{ dlg_prep(["dlg_tender"]) }}
  59. {# dlg divs below #}
  60. <div id="dlg_tender" aria-labeledby="spn_tender">
  61. <span id="spn_tender">Tender details</span><br>
  62. <form action="{{ url_for("main.tenders") }}" method="post" id="frm_tender">
  63. {{ form.csrf_token }}
  64. {{ form.hid_tender_id }}
  65. <ul>
  66. <li>{{ form.txt_reference_number.label }}&nbsp;{{ form.txt_reference_number }}</li>
  67. <li>{{ form.txt_description.label }}<br>
  68. {{ form.txt_description }}</li>
  69. </ul>
  70. <input type="submit" name="btn_save_tender" value="Save">
  71. </form>
  72. </div><!-- end of dlg_tender -->
  73. <script type="text/javascript">
  74. $(document).ready( function() {
  75. try {
  76. var s_dlg_tender = $("#dlg_tender").html();
  77. $("#a_add_tender").click( function(event) {
  78. event.preventDefault();
  79. $("#dlg_tender").html(s_dlg_tender);
  80. $("#dlg_tender").redraw();
  81. $("#dlg_tender").dialog("open");
  82. $("#txt_reference_number").focus();
  83. });// end of #a_add_tender click event
  84. $("#tbl_tenders").on("click", ".a_edit_tender", function(event) {
  85. try {
  86. event.preventDefault();
  87. $("#dlg_tender").html(s_dlg_tender);
  88. $("#dlg_tender").redraw();
  89. var s_id = String($(this).attr("href")).replace("#", "");
  90. var s_url = "{{ url_for("main.tender_details", i_tender_id=99999) }}".replace("99999", s_id);
  91. $.get(s_url, function(o_data) {
  92. if (typeof(o_data)=="object") {
  93. var s_reference_number = String(o_data.v_reference_number);
  94. var s_description = String(o_data.v_description)
  95. $("#hid_tender_id").val(s_id);
  96. $("#txt_reference_number").val(s_reference_number);
  97. $("#txt_description").val(s_description);
  98. $("#dlg_tender").redraw();
  99. $("#dlg_tender").dialog("open");
  100. $("#txt_reference_number").focus();
  101. } else {
  102. do_alert(String(o_data));
  103. }// end of typeof check against o_data
  104. });// end of .get
  105. } catch(e) {
  106. var s_err = String(e.name) + "\nmessage:" + String(e.message);
  107. s_err = (typeof(e.lineNumber)!="undefined") ? s_err + "\nline:" + String(e.lineNumber) : s_err;
  108. alert("Error! " + s_err);
  109. }//end of catch
  110. });// end of .a_edit_tender click event inside tbl_tenders
  111. $("#tbl_tenders").on("click", ".a_remove_tender", function(event) {
  112. try {
  113. event.preventDefault();
  114. var bl_confirm = confirm("Are you sure?");
  115. if (bl_confirm) {
  116. var s_id = String($(this).attr("href")).replace("#", "");
  117. $("#hid_remove_tender_id").val(s_id);
  118. document.getElementById("frm_remove_tender").submit();
  119. }// end of confirmation check
  120. } catch(e) {
  121. var s_err = String(e.name) + "\nmessage:" + String(e.message);
  122. s_err = (typeof(e.lineNumber)!="undefined") ? s_err + "\nline:" + String(e.lineNumber) : s_err;
  123. alert("Error! " + s_err);
  124. }//end of catch
  125. });// end of .a_edit_tender click event inside tbl_tenders
  126. function jump_page(i_page) {
  127. i_page = (isNaN(i_page)) ? 1 : Number(i_page);
  128. $("#hid_page").val(i_page);
  129. document.getElementById("frm_paging").submit();
  130. }// end of jump_page function
  131. $(".a_page_number").click( function(event) {
  132. event.preventDefault();
  133. var s_page = String($(this).attr("href")).replace("#", "");
  134. i_page = (isNaN(s_page)) ? 1 : Number(s_page);
  135. jump_page(i_page);
  136. });// end of .a_page_number function
  137. window.setTimeout( function() {
  138. var s_nada = ""; //alert("hello world");
  139. }, 300);
  140. var s = "nada"; // do_alert("hello world");
  141. } catch(e) {
  142. var s_err = String(e.name) + "\nmessage:" + String(e.message);
  143. s_err = (typeof(e.lineNumber)!="undefined") ? s_err + "\nline:" + String(e.lineNumber) : s_err;
  144. alert("Error! " + s_err);
  145. }//end of catch
  146. });// end of secondary document ready
  147. </script>
  148. <form action="{{ url_for("main.tenders") }}" method="post" id="frm_remove_tender">
  149. {{ remove_form.csrf_token }}
  150. {{ remove_form.hid_remove_tender_id }}
  151. </form>
  152. {% endblock %}