'use strict'; define( [ 'backgrid', 'Shared/Grid/HeaderCell' ], function (Backgrid, NzbDroneHeaderCell) { Backgrid.SeriesStatusHeaderCell = NzbDroneHeaderCell.extend({ events: { 'click': 'onClick' }, onClick: function (e) { e.preventDefault(); var self = this; var columnName = this.column.get('name'); if (this.column.get('sortable')) { if (this.direction() === 'ascending') { this.sort(columnName, 'descending', function (left, right) { var leftVal = self._getStatus(left); var rightVal = self._getStatus(right); return self._comparator(leftVal, rightVal) }); } else { this.sort(columnName, 'ascending', function (left, right) { var leftVal = self._getStatus(left); var rightVal = self._getStatus(right); return self._comparator(rightVal, leftVal) }); } } }, _comparator: function (leftVal, rightVal) { if (leftVal === rightVal) { return 0; } if (leftVal > rightVal) { return -1; } return 1; }, _getStatus: function (obj) { return obj.get('statusWeight'); } }); return Backgrid.SeriesStatusHeaderCell; });