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.
179 lines
8.8 KiB
179 lines
8.8 KiB
<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>
|
|
|