diff --git a/dev/jquery.jtable.core.js b/dev/jquery.jtable.core.js index a859986b..77426513 100644 --- a/dev/jquery.jtable.core.js +++ b/dev/jquery.jtable.core.js @@ -4,7 +4,7 @@ (function ($) { var unloadingPage; - + $(window).on('beforeunload', function () { unloadingPage = true; }); @@ -117,7 +117,7 @@ this._createErrorDialogDiv(); this._addNoDataRow(); - this._cookieKeyPrefix = this._generateCookieKeyPrefix(); + this._cookieKeyPrefix = this._generateCookieKeyPrefix(); }, /* Normalizes some options for all fields (sets default values). @@ -281,6 +281,7 @@ *************************************************************************/ _createHeaderCellForField: function (fieldName, field) { field.width = field.width || '10%'; //default column width: 10%. + field.firstSort = field.firstSort || 'ASC'; //default to ASC sorting columns unless firstSort: DESC var $headerTextSpan = $('') .addClass('jtable-column-header-text') @@ -295,6 +296,7 @@ .addClass(field.listClass) .css('width', field.width) .data('fieldName', fieldName) + .data('firstSort', field.firstSort) .append($headerContainerDiv); this._jqueryuiThemeAddClass($th, 'ui-state-default'); @@ -1170,7 +1172,7 @@ jqXHR.abort(); return; } - + if (options.error) { options.error(arguments); } diff --git a/dev/jquery.jtable.sorting.js b/dev/jquery.jtable.sorting.js index b7e9fa57..1a51f616 100644 --- a/dev/jquery.jtable.sorting.js +++ b/dev/jquery.jtable.sorting.js @@ -106,7 +106,7 @@ *************************************************************************/ _makeColumnSortable: function ($columnHeader, fieldName) { var self = this; - + $columnHeader .addClass('jtable-column-header-sortable') .click(function (e) { @@ -115,7 +115,7 @@ if (!self.options.multiSorting || !e.ctrlKey) { self._lastSorting = []; //clear previous sorting } - + self._sortTableByColumn($columnHeader); }); @@ -146,20 +146,15 @@ } } - //Sort ASC or DESC according to current sorting state - if ($columnHeader.hasClass('jtable-column-header-sorted-asc')) { - $columnHeader.removeClass('jtable-column-header-sorted-asc').addClass('jtable-column-header-sorted-desc'); - this._lastSorting.push({ - 'fieldName': $columnHeader.data('fieldName'), - sortOrder: 'DESC' - }); - } else { - $columnHeader.removeClass('jtable-column-header-sorted-desc').addClass('jtable-column-header-sorted-asc'); - this._lastSorting.push({ - 'fieldName': $columnHeader.data('fieldName'), - sortOrder: 'ASC' - }); - } + //Sort ASC or DESC according to current firstSort state on the field + var sortTo = 'ASC'; + if ($columnHeader.data('firstSort') == 'ASC') { + // DEFAULT TO ASC unless already ASC + sortTo = ($columnHeader.hasClass('jtable-column-header-sorted-asc')) ? 'DESC' : 'ASC'; + } else { + // DEFAULT TO DESC unless already DESC + sortTo = ($columnHeader.hasClass('jtable-column-header-sorted-desc')) ? 'ASC' : 'DESC'; + } //Load current page again this._reloadTable();