phpmyadmin/tests/unit/Controllers/Database/Fixtures/MultiTableQuery-testController.html
Maurício Meneghini Fauth 985455a967
Add unit test for Database\MultiTableQueryController
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2026-02-27 17:34:37 -03:00

557 lines
27 KiB
HTML

<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">
Query window
</button>
</div>
<div class="collapse show mb-3" id="queryWindow">
<form action="">
<input type="hidden" id="db_name" value="test_db">
<div class="card">
<div class="card-body">
<div class="d-none" id="e1aa88c07d60f7472d1e27463e533c89">
<option value="*">*</option>
<option value="id">id</option>
<option value="name">name</option>
<option value="datetimefield">datetimefield</option>
</div>
<div class="row g-3 mb-3">
<div class="col d-none" id="new_column_layout">
<div class="card">
<fieldset class="card-body">
<select class="tableNameSelect">
<option value="">select table</option>
<option data-hash="e1aa88c07d60f7472d1e27463e533c89" value="test_table">test_table</option>
</select>
<span>.</span>
<select class="columnNameSelect">
<option value="">select column</option>
</select>
<br>
<input type="checkbox" checked class="show_col">
<span>Show</span>
<br>
<input type="text" placeholder="Table alias" class="table_alias">
<input type="text" placeholder="Column alias" class="col_alias">
<br>
<input type="checkbox"
title="Use this column in criteria"
class="criteria_col" data-bs-toggle="collapse" data-bs-target="#criteriaOptions0" aria-expanded="false" aria-controls="criteriaOptions0">
<button class="btn btn-link p-0 jsCriteriaButton" type="button" data-bs-toggle="collapse" data-bs-target="#criteriaOptions0" aria-expanded="false" aria-controls="criteriaOptions0">
criteria
</button>
<div class="collapse jsCriteriaOptions" id="criteriaOptions0">
<div>
<table class="table table-sm table-borderless align-middle w-auto">
<tr class="sort_order">
<td>Sort</td>
<td><input type="radio" name="sort[0]">Ascending</td>
<td><input type="radio" name="sort[0]">Descending</td>
</tr>
<tr class="logical_operator">
<td>Add as</td>
<td>
<input type="radio"
name="logical_op[0]"
value="AND"
class="logical_op"
checked>
AND
</td>
<td>
<input type="radio"
name="logical_op[0]"
value="OR"
class="logical_op">
OR
</td>
</tr>
<tr>
<td>Column</td>
<td colspan="2">
<select class="columnNameSelect query-form__select--inline opColumn">
<option value="">select column</option>
</select>
</td>
</tr>
<tr>
<td>Op</td>
<td>
<select class="criteria_op">
<option value="=">=</option>
<option value=">">&gt;</option>
<option value=">=">&gt;=</option>
<option value="<">&lt;</option>
<option value="<=">&lt;=</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">Text</option>
<option value="anotherColumn">Another column</option>
</select>
</td>
</tr>
<tr class="rhs_table" style="display: none;">
<td></td>
<td>
<select class="tableNameSelect">
<option value="">select table</option>
<option data-hash="e1aa88c07d60f7472d1e27463e533c89" value="test_table">test_table</option>
</select><span>.</span>
</td>
<td>
<select class="columnNameSelect">
<option value="">select column</option>
</select>
</td>
</tr>
<tr class="rhs_text">
<td></td>
<td colspan="2">
<input type="text"
class="rhs_text_val"
placeholder="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="Remove this column"></button>
</fieldset>
</div>
</div>
<div class="col">
<div class="card">
<fieldset class="card-body">
<select class="tableNameSelect">
<option value="">select table</option>
<option data-hash="e1aa88c07d60f7472d1e27463e533c89" value="test_table">test_table</option>
</select>
<span>.</span>
<select class="columnNameSelect">
<option value="">select column</option>
</select>
<br>
<input type="checkbox" checked class="show_col">
<span>Show</span>
<br>
<input type="text" placeholder="Table alias" class="table_alias">
<input type="text" placeholder="Column alias" class="col_alias">
<br>
<input type="checkbox"
title="Use this column in criteria"
class="criteria_col" data-bs-toggle="collapse" data-bs-target="#criteriaOptions1" aria-expanded="false" aria-controls="criteriaOptions1">
<button class="btn btn-link p-0 jsCriteriaButton" type="button" data-bs-toggle="collapse" data-bs-target="#criteriaOptions1" aria-expanded="false" aria-controls="criteriaOptions1">
criteria
</button>
<div class="collapse jsCriteriaOptions" id="criteriaOptions1">
<div>
<table class="table table-sm table-borderless align-middle w-auto">
<tr class="sort_order">
<td>Sort</td>
<td><input type="radio" name="sort[1]">Ascending</td>
<td><input type="radio" name="sort[1]">Descending</td>
</tr>
<tr class="logical_operator">
<td>Add as</td>
<td>
<input type="radio"
name="logical_op[1]"
value="AND"
class="logical_op"
checked>
AND
</td>
<td>
<input type="radio"
name="logical_op[1]"
value="OR"
class="logical_op">
OR
</td>
</tr>
<tr>
<td>Column</td>
<td colspan="2">
<select class="columnNameSelect query-form__select--inline opColumn">
<option value="">select column</option>
</select>
</td>
</tr>
<tr>
<td>Op</td>
<td>
<select class="criteria_op">
<option value="=">=</option>
<option value=">">&gt;</option>
<option value=">=">&gt;=</option>
<option value="<">&lt;</option>
<option value="<=">&lt;=</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">Text</option>
<option value="anotherColumn">Another column</option>
</select>
</td>
</tr>
<tr class="rhs_table" style="display: none;">
<td></td>
<td>
<select class="tableNameSelect">
<option value="">select table</option>
<option data-hash="e1aa88c07d60f7472d1e27463e533c89" value="test_table">test_table</option>
</select><span>.</span>
</td>
<td>
<select class="columnNameSelect">
<option value="">select column</option>
</select>
</td>
</tr>
<tr class="rhs_text">
<td></td>
<td colspan="2">
<input type="text"
class="rhs_text_val"
placeholder="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="Remove this column"></button>
</fieldset>
</div>
</div>
<div class="col">
<div class="card">
<fieldset class="card-body">
<select class="tableNameSelect">
<option value="">select table</option>
<option data-hash="e1aa88c07d60f7472d1e27463e533c89" value="test_table">test_table</option>
</select>
<span>.</span>
<select class="columnNameSelect">
<option value="">select column</option>
</select>
<br>
<input type="checkbox" checked class="show_col">
<span>Show</span>
<br>
<input type="text" placeholder="Table alias" class="table_alias">
<input type="text" placeholder="Column alias" class="col_alias">
<br>
<input type="checkbox"
title="Use this column in criteria"
class="criteria_col" data-bs-toggle="collapse" data-bs-target="#criteriaOptions2" aria-expanded="false" aria-controls="criteriaOptions2">
<button class="btn btn-link p-0 jsCriteriaButton" type="button" data-bs-toggle="collapse" data-bs-target="#criteriaOptions2" aria-expanded="false" aria-controls="criteriaOptions2">
criteria
</button>
<div class="collapse jsCriteriaOptions" id="criteriaOptions2">
<div>
<table class="table table-sm table-borderless align-middle w-auto">
<tr class="sort_order">
<td>Sort</td>
<td><input type="radio" name="sort[2]">Ascending</td>
<td><input type="radio" name="sort[2]">Descending</td>
</tr>
<tr class="logical_operator">
<td>Add as</td>
<td>
<input type="radio"
name="logical_op[2]"
value="AND"
class="logical_op"
checked>
AND
</td>
<td>
<input type="radio"
name="logical_op[2]"
value="OR"
class="logical_op">
OR
</td>
</tr>
<tr>
<td>Column</td>
<td colspan="2">
<select class="columnNameSelect query-form__select--inline opColumn">
<option value="">select column</option>
</select>
</td>
</tr>
<tr>
<td>Op</td>
<td>
<select class="criteria_op">
<option value="=">=</option>
<option value=">">&gt;</option>
<option value=">=">&gt;=</option>
<option value="<">&lt;</option>
<option value="<=">&lt;=</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">Text</option>
<option value="anotherColumn">Another column</option>
</select>
</td>
</tr>
<tr class="rhs_table" style="display: none;">
<td></td>
<td>
<select class="tableNameSelect">
<option value="">select table</option>
<option data-hash="e1aa88c07d60f7472d1e27463e533c89" value="test_table">test_table</option>
</select><span>.</span>
</td>
<td>
<select class="columnNameSelect">
<option value="">select column</option>
</select>
</td>
</tr>
<tr class="rhs_text">
<td></td>
<td colspan="2">
<input type="text"
class="rhs_text_val"
placeholder="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="Remove this column"></button>
</fieldset>
</div>
</div>
<div class="col">
<div class="card">
<fieldset class="card-body">
<select class="tableNameSelect">
<option value="">select table</option>
<option data-hash="e1aa88c07d60f7472d1e27463e533c89" value="test_table">test_table</option>
</select>
<span>.</span>
<select class="columnNameSelect">
<option value="">select column</option>
</select>
<br>
<input type="checkbox" checked class="show_col">
<span>Show</span>
<br>
<input type="text" placeholder="Table alias" class="table_alias">
<input type="text" placeholder="Column alias" class="col_alias">
<br>
<input type="checkbox"
title="Use this column in criteria"
class="criteria_col" data-bs-toggle="collapse" data-bs-target="#criteriaOptions3" aria-expanded="false" aria-controls="criteriaOptions3">
<button class="btn btn-link p-0 jsCriteriaButton" type="button" data-bs-toggle="collapse" data-bs-target="#criteriaOptions3" aria-expanded="false" aria-controls="criteriaOptions3">
criteria
</button>
<div class="collapse jsCriteriaOptions" id="criteriaOptions3">
<div>
<table class="table table-sm table-borderless align-middle w-auto">
<tr class="sort_order">
<td>Sort</td>
<td><input type="radio" name="sort[3]">Ascending</td>
<td><input type="radio" name="sort[3]">Descending</td>
</tr>
<tr class="logical_operator">
<td>Add as</td>
<td>
<input type="radio"
name="logical_op[3]"
value="AND"
class="logical_op"
checked>
AND
</td>
<td>
<input type="radio"
name="logical_op[3]"
value="OR"
class="logical_op">
OR
</td>
</tr>
<tr>
<td>Column</td>
<td colspan="2">
<select class="columnNameSelect query-form__select--inline opColumn">
<option value="">select column</option>
</select>
</td>
</tr>
<tr>
<td>Op</td>
<td>
<select class="criteria_op">
<option value="=">=</option>
<option value=">">&gt;</option>
<option value=">=">&gt;=</option>
<option value="<">&lt;</option>
<option value="<=">&lt;=</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">Text</option>
<option value="anotherColumn">Another column</option>
</select>
</td>
</tr>
<tr class="rhs_table" style="display: none;">
<td></td>
<td>
<select class="tableNameSelect">
<option value="">select table</option>
<option data-hash="e1aa88c07d60f7472d1e27463e533c89" value="test_table">test_table</option>
</select><span>.</span>
</td>
<td>
<select class="columnNameSelect">
<option value="">select column</option>
</select>
</td>
</tr>
<tr class="rhs_text">
<td></td>
<td colspan="2">
<input type="text"
class="rhs_text_val"
placeholder="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="Remove this column"></button>
</fieldset>
</div>
</div>
</div>
<div class="mb-3">
<input class="btn btn-secondary" type="button" value="+ Add column" id="add_column_button">
</div>
<div>
<textarea id="MultiSqlquery"
class="form-control"
cols="80"
rows="4"
name="sql_query"
dir="ltr"></textarea>
</div>
</div>
<div class="card-footer">
<input class="btn btn-secondary" type="button" id="update_query_button" value="Update query">
<input class="btn btn-secondary" type="button" id="copy_query" value="Copy query" disabled>
<input class="btn btn-primary" type="button" id="submit_query" value="Submit query">
</div>
</div>
</form>
</div>
<div id="sql_results"></div>