From b756cc66de07aa5a6c6fff8a08687dd3d969eb2c Mon Sep 17 00:00:00 2001 From: Atul Pratap Singh Date: Wed, 2 Jul 2014 00:37:14 +0530 Subject: [PATCH] update js for add/remove modify columns in multi sort Signed-off-by: Atul Pratap Singh --- js/makegrid.js | 27 ++++++++++---------- js/messages.php | 4 +-- js/{columndelete.js => multi_column_sort.js} | 26 +++++++++++-------- sql.php | 2 +- 4 files changed, 31 insertions(+), 28 deletions(-) rename js/{columndelete.js => multi_column_sort.js} (79%) diff --git a/js/makegrid.js b/js/makegrid.js index 14da4fae5c..369521f407 100644 --- a/js/makegrid.js +++ b/js/makegrid.js @@ -430,25 +430,24 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi if ($(t).find('th.marker').length > 0) { g.showMarkHint = true; } - - if (g.showReorderHint && g.reorderHint) { - text += g.reorderHint; - } if (g.showSortHint && g.sortHint) { text += text.length > 0 ? '
' : ''; - text += g.sortHint; + text += '- ' + g.sortHint; } - if (g.showRemColHint && g.strRemColHint) { + if (g.showMultiSortHint && g.strMultiSortHint) { text += text.length > 0 ? '
' : ''; - text += g.strRemColHint; + text += '- ' + g.strMultiSortHint; } - if (g.showMarkHint && g.markHint && - !g.showSortHint // we do not show mark hint, when sort hint is shown + if (g.showMarkHint && g.markHint + && !g.showSortHint // we do not show mark hint, when sort hint is shown + && g.showReorderHint && g.reorderHint ) { text += text.length > 0 ? '
' : ''; - text += g.markHint; + text += '- ' + g.reorderHint; text += text.length > 0 ? '
' : ''; - text += g.copyHint; + text += '- ' + g.markHint; + text += text.length > 0 ? '
' : ''; + text += '- ' + g.copyHint; } } return text; @@ -1803,7 +1802,7 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi // assign the hints g.sortHint = PMA_messages.strSortHint; - g.strRemColHint = PMA_messages.strRemColHint; + g.strMultiSortHint = PMA_messages.strMultiSortHint; g.markHint = PMA_messages.strColMarkHint; g.copyHint = PMA_messages.strColNameCopyHint; @@ -1857,14 +1856,14 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi $(t).find('th.draggable a') .mouseenter(function (e) { g.showSortHint = true; - g.showRemColHint = true; + g.showMultiSortHint = true; $(t).find("th.draggable").tooltip("option", { content: g.updateHint() }); }) .mouseleave(function (e) { g.showSortHint = false; - g.showRemColHint = false; + g.showMultiSortHint = false; $(t).find("th.draggable").tooltip("option", { content: g.updateHint() }); diff --git a/js/messages.php b/js/messages.php index 673630fe68..67711471ce 100644 --- a/js/messages.php +++ b/js/messages.php @@ -341,8 +341,8 @@ $js_messages['strObjectsCreated'] = __('%d object(s) created.'); $js_messages['strCellEditHint'] = __('Press escape to cancel editing.'); $js_messages['strSaveCellWarning'] = __('You have edited some data and they have not been saved. Are you sure you want to leave this page before saving the data?'); $js_messages['strColOrderHint'] = __('Drag to reorder.'); -$js_messages['strSortHint'] = __('Click to sort.'); -$js_messages['strRemColHint'] = __('Hold shift and click to remove column from ORDER BY clause.'); +$js_messages['strSortHint'] = __('Click to sort results by this column.'); +$js_messages['strMultiSortHint'] = __('Shift+Click to add this column to ORDER BY clause or to toggle ASC/DESC.
- Control+CLick to remove column from ORDER BY clause'); $js_messages['strColMarkHint'] = __('Click to mark/unmark.'); $js_messages['strColNameCopyHint'] = __('Double-click to copy column name.'); $js_messages['strColVisibHint'] = __( diff --git a/js/columndelete.js b/js/multi_column_sort.js similarity index 79% rename from js/columndelete.js rename to js/multi_column_sort.js index 4dead77444..cb5bece3ca 100644 --- a/js/columndelete.js +++ b/js/multi_column_sort.js @@ -17,7 +17,7 @@ function captureURL(url) URL['head'] = url.substr(0, url.indexOf('ORDER+BY') + 9); URL['tail'] = url.substr(url.indexOf("&session_max_rows"), url.length); return URL; -} +} /** * This function is for navigating to the generated URL @@ -26,8 +26,8 @@ function captureURL(url) * @param object parent HTMLDom Object */ -function redirect(target, parent) -{ +function removeColumnFromMultiSort(target, parent) +{ var URL = captureURL(target); var begin = target.indexOf('ORDER+BY') + 8; var end = target.indexOf('&session_max_rows'); @@ -43,7 +43,7 @@ function redirect(target, parent) columns.splice(index-1, 1); // If all the columns have been removed dont submit a query with nothing // After order by clause. - if (columns.length == 0){ + if (columns.length == 0){ var head = URL['head']; head = head.slice(0,head.indexOf('ORDER+BY')); URL['head'] = head; @@ -52,16 +52,20 @@ function redirect(target, parent) URL['tail'] += '&discard_remembered_sort=1'; } var middle_part = columns.join('%2C+'); - url = URL['head'] + middle_part + URL['tail']; - window.location.replace(url); + url = URL['head'] + middle_part + URL['tail']; + return url; } - -AJAX.registerOnload('keyhandler.js', function () { - $("th.draggable.column_heading.pointer.marker a").live('click', function (event) { - if (event.shiftKey) { +AJAX.registerOnload('keyhandler.js', function () { + $("th.draggable.column_heading.pointer.marker a").live('click', function (event) { + var url = $(this).parent().find('input').val(); + if (event.ctrlKey) { event.preventDefault(); - redirect($(this).attr("href"), $(this).parent()); + url = removeColumnFromMultiSort(url, $(this).parent()); + window.location.replace(url); + } else if (event.shiftKey) { + event.preventDefault(); + window.location.replace(url); } }); }); diff --git a/sql.php b/sql.php index 07a8ca770d..a740f30c33 100644 --- a/sql.php +++ b/sql.php @@ -27,7 +27,7 @@ $scripts->addFile('jquery/jquery.uitablefilter.js'); $scripts->addFile('tbl_change.js'); $scripts->addFile('indexes.js'); $scripts->addFile('gis_data_editor.js'); -$scripts->addFile('columndelete.js'); +$scripts->addFile('multi_column_sort.js'); /** * Set ajax_reload in the response if it was already set