tenders.html 5.6 KB

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