You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
8.8 KiB
180 lines
8.8 KiB
2 years ago
|
<ul class="nav nav-pills m-2">
|
||
|
<li class="nav-item">
|
||
|
<a class="nav-link active" href="{{ url('/database/multi-table-query', {'db': db}) }}">
|
||
|
{% trans 'Multi-table query' %}
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
<li class="nav-item">
|
||
|
<a class="nav-link" href="{{ url('/database/qbe', {'db': db}) }}">
|
||
|
{% trans 'Query by example' %}
|
||
|
</a>
|
||
|
</li>
|
||
|
</ul>
|
||
|
|
||
|
<div class="mb-3">
|
||
|
<button class="btn btn-sm btn-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#queryWindow" aria-expanded="true" aria-controls="queryWindow">
|
||
|
{% trans 'Query window' %}
|
||
|
</button>
|
||
|
</div>
|
||
|
<div class="collapse show mb-3" id="queryWindow">
|
||
|
|
||
|
<form action="" id="multi_table_query_form" class="multi_table_query_form query_form">
|
||
|
<input type="hidden" id="db_name" value="{{ db }}">
|
||
|
<fieldset class="pma-fieldset">
|
||
|
{% for table in tables %}
|
||
|
<div class="d-none" id="{{ table.hash }}">
|
||
|
<option value="*">*</option>
|
||
|
{% for column in table.columns %}
|
||
|
<option value="{{ column }}">{{ column }}</option>
|
||
|
{% endfor %}
|
||
|
</div>
|
||
|
{% endfor %}
|
||
|
|
||
|
{% for id in 0..default_no_of_columns %}
|
||
|
{% if id == 0 %}<div class="d-none" id="new_column_layout">{% endif %}
|
||
|
<fieldset class="pma-fieldset column_details query-form__fieldset--inline position-relative">
|
||
|
<select class="tableNameSelect query-form__select--inline">
|
||
|
<option value="">{% trans 'select table' %}</option>
|
||
|
{% for keyTableName, table in tables %}
|
||
|
<option data-hash="{{ table.hash }}" value="{{ keyTableName }}">{{ keyTableName }}</option>
|
||
|
{% endfor %}
|
||
|
</select>
|
||
|
<span>.</span>
|
||
|
<select class="columnNameSelect query-form__select--inline">
|
||
|
<option value="">{% trans 'select column' %}</option>
|
||
|
</select>
|
||
|
<br>
|
||
|
<input type="checkbox" checked="checked" class="show_col">
|
||
|
<span>{% trans 'Show' %}</span>
|
||
|
<br>
|
||
|
<input type="text" placeholder="{% trans 'Table alias' %}" class="table_alias">
|
||
|
<input type="text" placeholder="{% trans 'Column alias' %}" class="col_alias">
|
||
|
<br>
|
||
|
<input type="checkbox"
|
||
|
title="{% trans 'Use this column in criteria' %}"
|
||
|
class="criteria_col">
|
||
|
|
||
|
<button class="btn btn-link p-0 jsCriteriaButton" type="button" data-bs-toggle="collapse" data-bs-target="#criteriaOptions{{ id }}" aria-expanded="false" aria-controls="criteriaOptions{{ id }}">
|
||
|
{% trans 'criteria' %}
|
||
|
</button>
|
||
|
<div class="collapse jsCriteriaOptions" id="criteriaOptions{{ id }}">
|
||
|
|
||
|
<div>
|
||
|
<table class="table table-sm table-borderless align-middle w-auto">
|
||
|
|
||
|
<tr class="sort_order query-form__tr--bg-none">
|
||
|
<td>{% trans 'Sort' %}</td>
|
||
|
<td><input type="radio" name="sort[{{ id }}]">{% trans 'Ascending' %}</td>
|
||
|
<td><input type="radio" name="sort[{{ id }}]">{% trans 'Descending' %}</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr class="logical_operator query-form__tr--bg-none query-form__tr--hide">
|
||
|
<td>{% trans 'Add as' %}</td>
|
||
|
<td>
|
||
|
<input type="radio"
|
||
|
name="logical_op[{{ id }}]"
|
||
|
value="AND"
|
||
|
class="logical_op"
|
||
|
checked="checked">
|
||
|
AND
|
||
|
</td>
|
||
|
<td>
|
||
|
<input type="radio"
|
||
|
name="logical_op[{{ id }}]"
|
||
|
value="OR"
|
||
|
class="logical_op">
|
||
|
OR
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr class="query-form__tr--bg-none">
|
||
|
<td>Op </td>
|
||
|
<td>
|
||
|
<select class="criteria_op">
|
||
|
<option value="=">=</option>
|
||
|
<option value=">">></option>
|
||
|
<option value=">=">>=</option>
|
||
|
<option value="<"><</option>
|
||
|
<option value="<="><=</option>
|
||
|
<option value="!=">!=</option>
|
||
|
<option value="LIKE">LIKE</option>
|
||
|
<option value="LIKE %...%">LIKE %...%</option>
|
||
|
<option value="NOT LIKE">NOT LIKE</option>
|
||
|
<option value="NOT LIKE %...%">NOT LIKE %...%</option>
|
||
|
<option value="IN (...)">IN (...)</option>
|
||
|
<option value="NOT IN (...)">NOT IN (...)</option>
|
||
|
<option value="BETWEEN">BETWEEN</option>
|
||
|
<option value="NOT BETWEEN">NOT BETWEEN</option>
|
||
|
<option value="IS NULL">IS NULL</option>
|
||
|
<option value="IS NOT NULL">IS NOT NULL</option>
|
||
|
<option value="REGEXP">REGEXP</option>
|
||
|
<option value="REGEXP ^...$">REGEXP ^...$</option>
|
||
|
<option value="NOT REGEXP">NOT REGEXP</option>
|
||
|
</select>
|
||
|
</td>
|
||
|
<td>
|
||
|
<select class="criteria_rhs">
|
||
|
<option value="text">{% trans 'Text' %}</option>
|
||
|
<option value="anotherColumn">{% trans 'Another column' %}</option>
|
||
|
</select>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr class="rhs_table query-form__tr--hide query-form__tr--bg-none">
|
||
|
<td></td>
|
||
|
<td>
|
||
|
<select class="tableNameSelect">
|
||
|
<option value="">{% trans 'select table' %}</option>
|
||
|
{% for keyTableName, table in tables %}
|
||
|
<option data-hash="{{ table.hash }}" value="{{ keyTableName }}">{{ keyTableName }}</option>
|
||
|
{% endfor %}
|
||
|
</select><span>.</span>
|
||
|
</td>
|
||
|
<td>
|
||
|
<select class="columnNameSelect query-form__select--inline">
|
||
|
<option value="">{% trans 'select column' %}</option>
|
||
|
</select>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr class="rhs_text query-form__tr--bg-none">
|
||
|
<td></td>
|
||
|
<td colspan="2">
|
||
|
<input type="text"
|
||
|
class="rhs_text_val query-form__input--wide"
|
||
|
placeholder="{% trans 'Enter criteria as free text' %}">
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
<button type="button" class="btn-close position-absolute top-0 end-0 jsRemoveColumn" aria-label="{% trans 'Remove this column' %}"></button>
|
||
|
</fieldset>
|
||
|
{% if id == 0 %}</div>{% endif %}
|
||
|
{% endfor %}
|
||
|
|
||
|
<fieldset class="pma-fieldset query-form__fieldset--inline">
|
||
|
<input class="btn btn-secondary" type="button" value="{% trans '+ Add column' %}" id="add_column_button">
|
||
|
</fieldset>
|
||
|
|
||
|
<fieldset class="pma-fieldset">
|
||
|
{# Keep the block without a space between the open and close tag #}
|
||
|
<textarea id="MultiSqlquery"
|
||
|
class="query-form__multi-sql-query"
|
||
|
cols="80"
|
||
|
rows="4"
|
||
|
name="sql_query"
|
||
|
dir="ltr"></textarea>
|
||
|
</fieldset>
|
||
|
</fieldset>
|
||
|
|
||
|
<fieldset class="pma-fieldset tblFooters">
|
||
|
<input class="btn btn-secondary" type="button" id="update_query_button" value="{% trans 'Update query' %}">
|
||
|
<input class="btn btn-primary" type="button" id="submit_query" value="{% trans 'Submit query' %}">
|
||
|
</fieldset>
|
||
|
</form>
|
||
|
</div>
|
||
|
<div id="sql_results"></div>
|