form.twig 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <ul class="nav nav-pills m-2">
  2. <li class="nav-item">
  3. <a class="nav-link active" href="{{ url('/database/multi-table-query', {'db': db}) }}">
  4. {% trans 'Multi-table query' %}
  5. </a>
  6. </li>
  7. <li class="nav-item">
  8. <a class="nav-link" href="{{ url('/database/qbe', {'db': db}) }}">
  9. {% trans 'Query by example' %}
  10. </a>
  11. </li>
  12. </ul>
  13. <div id="query_div" class="pma_auto_slider" title="{% trans 'Query window' %}">
  14. <form action="" id="multi_table_query_form" class="multi_table_query_form query_form">
  15. <input type="hidden" id="db_name" value="{{ db }}">
  16. <fieldset>
  17. {% for table in tables %}
  18. <div class="query-form__div--hide" id="{{ table.hash }}">
  19. <option value="*">*</option>
  20. {% for column in table.columns %}
  21. <option value="{{ column }}">{{ column }}</option>
  22. {% endfor %}
  23. </div>
  24. {% endfor %}
  25. {% for id in 0..default_no_of_columns %}
  26. {% if id == 0 %}<div class="query-form__div--hide" id="new_column_layout">{% endif %}
  27. <fieldset class="column_details query-form__fieldset--inline">
  28. <select class="tableNameSelect query-form__select--inline">
  29. <option value="">{% trans 'select table' %}</option>
  30. {% for table in tables|keys %}
  31. <option value="{{ table }}">{{ table }}</option>
  32. {% endfor %}
  33. </select>
  34. <span>.</span>
  35. <select class="columnNameSelect query-form__select--inline">
  36. <option value="">{% trans 'select column' %}</option>
  37. </select>
  38. <br>
  39. <input type="checkbox" checked="checked" class="show_col">
  40. <span>{% trans 'Show' %}</span>
  41. <br>
  42. <input type="text" placeholder="{% trans 'Table alias' %}" class="table_alias">
  43. <input type="text" placeholder="{% trans 'Column alias' %}" class="col_alias">
  44. <br>
  45. <input type="checkbox"
  46. title="{% trans 'Use this column in criteria' %}"
  47. class="criteria_col">
  48. <div id="criteria_div{{ id }}" class="pma_auto_slider" title="{% trans 'criteria' %}" style="display: none; overflow:auto;">
  49. <div>
  50. <table class="pma-table">
  51. <tr class="sort_order query-form__tr--bg-none">
  52. <td>{% trans 'Sort' %}</td>
  53. <td><input type="radio" name="sort[{{ id }}]">{% trans 'Ascending' %}</td>
  54. <td><input type="radio" name="sort[{{ id }}]">{% trans 'Descending' %}</td>
  55. </tr>
  56. <tr class="logical_operator query-form__tr--bg-none query-form__tr--hide">
  57. <td>{% trans 'Add as' %}</td>
  58. <td>
  59. <input type="radio"
  60. name="logical_op[{{ id }}]"
  61. value="AND"
  62. class="logical_op"
  63. checked="checked">
  64. AND
  65. </td>
  66. <td>
  67. <input type="radio"
  68. name="logical_op[{{ id }}]"
  69. value="OR"
  70. class="logical_op">
  71. OR
  72. </td>
  73. </tr>
  74. <tr class="query-form__tr--bg-none">
  75. <td>Op </td>
  76. <td>
  77. <select class="criteria_op">
  78. <option value="=">=</option>
  79. <option value=">">&gt;</option>
  80. <option value=">=">&gt;=</option>
  81. <option value="<">&lt;</option>
  82. <option value="<=">&lt;=</option>
  83. <option value="!=">!=</option>
  84. <option value="LIKE">LIKE</option>
  85. <option value="LIKE %...%">LIKE %...%</option>
  86. <option value="NOT LIKE">NOT LIKE</option>
  87. <option value="IN (...)">IN (...)</option>
  88. <option value="NOT IN (...)">NOT IN (...)</option>
  89. <option value="BETWEEN">BETWEEN</option>
  90. <option value="NOT BETWEEN">NOT BETWEEN</option>
  91. <option value="IS NULL">IS NULL</option>
  92. <option value="IS NOT NULL">IS NOT NULL</option>
  93. <option value="REGEXP">REGEXP</option>
  94. <option value="REGEXP ^...$">REGEXP ^...$</option>
  95. <option value="NOT REGEXP">NOT REGEXP</option>
  96. </select>
  97. </td>
  98. <td>
  99. <select class="criteria_rhs">
  100. <option value="text">{% trans 'Text' %}</option>
  101. <option value="anotherColumn">{% trans 'Another column' %}</option>
  102. </select>
  103. </td>
  104. </tr>
  105. <tr class="rhs_table query-form__tr--hide query-form__tr--bg-none">
  106. <td></td>
  107. <td>
  108. <select class="tableNameSelect">
  109. <option value="">{% trans 'select table' %}</option>
  110. {% for table in tables|keys %}
  111. <option value="{{ table }}">{{ table }}</option>
  112. {% endfor %}
  113. </select><span>.</span>
  114. </td>
  115. <td>
  116. <select class="columnNameSelect query-form__select--inline">
  117. <option value="">{% trans 'select column' %}</option>
  118. </select>
  119. </td>
  120. </tr>
  121. <tr class="rhs_text query-form__tr--bg-none">
  122. <td></td>
  123. <td colspan="2">
  124. <input type="text"
  125. class="rhs_text_val query-form__input--wide"
  126. placeholder="{% trans 'Enter criteria as free text' %}">
  127. </td>
  128. </tr>
  129. </table>
  130. </div>
  131. </div>
  132. <a href="#"
  133. title="{% trans 'Remove this column' %}"
  134. class="removeColumn query-form__remove-column">
  135. X
  136. </a>
  137. </fieldset>
  138. {% if id == 0 %}</div>{% endif %}
  139. {% endfor %}
  140. <fieldset class="query-form__fieldset--inline">
  141. <input class="btn btn-secondary" type="button" value="{% trans '+ Add column' %}" id="add_column_button">
  142. </fieldset>
  143. <fieldset>
  144. {# Keep the block without a space between the open and close tag #}
  145. <textarea id="MultiSqlquery"
  146. class="query-form__multi-sql-query"
  147. cols="80"
  148. rows="4"
  149. name="sql_query"
  150. dir="ltr"></textarea>
  151. </fieldset>
  152. </fieldset>
  153. <fieldset class="tblFooters">
  154. <input class="btn btn-secondary" type="button" id="update_query_button" value="{% trans 'Update query' %}">
  155. <input class="btn btn-primary" type="button" id="submit_query" value="{% trans 'Submit query' %}">
  156. </fieldset>
  157. </form>
  158. </div>
  159. <div id="sql_results"></div>