This commit is contained in:
Diogo A Pinheiro 2026-06-16 12:59:06 +01:00 committed by GitHub
commit 39298f754f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 3 deletions

View File

@ -9,7 +9,7 @@
*
*/
/* global generateFromBlock, generateWhereBlock */ // js/database/query_generator.js
/* global generateFromBlock, generateWhereBlock, generateOrderBlock */ // js/database/query_generator.js
/**
* js file for handling AJAX and other events in /database/multi-table-query
@ -125,6 +125,11 @@ AJAX.registerOnload('database/multi_table_query.js', function () {
query += generateWhereBlock();
}
var $orderParts = generateOrderBlock();
if ($orderParts !== '') {
query += '\nORDER BY ' + $orderParts;
}
query += ';';
editor.getDoc().setValue(query);
});

View File

@ -97,6 +97,22 @@ function generateWhereBlock () {
return query;
}
function generateOrderBlock() {
var parts = [];
$('.tableNameSelect').each(function () {
var criteriaDiv = $(this).siblings('.jsCriteriaOptions').first();
var useCriteria = criteriaDiv.find('input.sort_or:checked');
if (useCriteria.length > 0 && $(this).val() !== '' && $(this).siblings('.criteria_col').first().prop('checked')) {
var tableName = $(this).val();
var tableShort = $(this).siblings('.table_alias').val();
var ref = '`' + Functions.escapeBacktick(tableShort !== '' ? tableShort : tableName) + '`';
ref += '.`' + Functions.escapeBacktick($(this).parent().find('.opColumn').first().val()) + '`';
parts.push(ref + ' ' + useCriteria.val());
}
});
return parts.join(', ');
}
function generateJoin (newTable, tableAliases, fk) {
var query = '';
query += ' \n\tLEFT JOIN ' + '`' + Functions.escapeBacktick(newTable) + '`';

View File

@ -65,8 +65,8 @@
<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>
<td><input type="radio" name="sort[{{ id }}]" value="ASC" class="sort_or">{% trans 'Ascending' %}</td>
<td><input type="radio" name="sort[{{ id }}]" value="DESC" class="sort_or">{% trans 'Descending' %}</td>
</tr>
<tr class="logical_operator query-form__tr--bg-none query-form__tr--hide">