diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 36aae5445d9f..96ecf65a2d34 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2467,6 +2467,7 @@ $LANG = array( 'stopped' => 'Stopped', 'ascending' => 'Ascending', 'descending' => 'Descending', + 'sort_field' => 'Sort By', 'sort_direction' => 'Direction', ); diff --git a/resources/views/tasks/time_tracker.blade.php b/resources/views/tasks/time_tracker.blade.php index 8b690a2d8fe4..40e13e5b81f6 100644 --- a/resources/views/tasks/time_tracker.blade.php +++ b/resources/views/tasks/time_tracker.blade.php @@ -234,13 +234,13 @@
- {!! Former::select('sort_by') + {!! Former::select('sort_field') ->addOption(trans('texts.date'), 'createdAt') ->addOption(trans('texts.duration'), 'duration') ->addOption(trans('texts.client'), 'client') ->addOption(trans('texts.project'), 'project') ->addOption(trans('texts.description'), 'description') - ->data_bind('value: sortBy, event: {change: onSortChange}') !!} + ->data_bind('value: sortField, event: {change: onSortChange}') !!}
{!! Former::select('sort_direction') @@ -478,7 +478,7 @@ model.tock(); if (isStorageSupported()) { - var taskId = localStorage.getItem('last:time_tracker_task'); + var taskId = localStorage.getItem('last:time_tracker:task_id'); var task = model.taskById(taskId); if (task) { setTimeout(function() { diff --git a/resources/views/tasks/time_tracker_knockout.blade.php b/resources/views/tasks/time_tracker_knockout.blade.php index e581595e4bdd..88ff5eea0208 100644 --- a/resources/views/tasks/time_tracker_knockout.blade.php +++ b/resources/views/tasks/time_tracker_knockout.blade.php @@ -13,9 +13,16 @@ self.selectedClient = ko.observable(false); self.selectedProject = ko.observable(false); + var defaultSortField = 'createdAt'; + var defaultSortDirection = 'descending'; + if (isStorageSupported()) { + defaultSortField = localStorage.getItem('last:time_tracker:sort_field') || defaultSortField; + defaultSortDirection = localStorage.getItem('last:time_tracker:sort_direction') || defaultSortDirection; + } + self.filterState = ko.observable('all'); - self.sortBy = ko.observable('createdAt'); - self.sortDirection = ko.observable('descending'); + self.sortField = ko.observable(defaultSortField); + self.sortDirection = ko.observable(defaultSortDirection); self.isDesktop = function() { return navigator.userAgent == 'Time Tracker'; @@ -32,7 +39,10 @@ } self.onSortChange = function() { - console.log('sort change...'); + if (isStorageSupported()) { + localStorage.setItem('last:time_tracker:sort_field', self.sortField()); + localStorage.setItem('last:time_tracker:sort_direction', self.sortDirection()); + } } self.onFilterClick = function(event) { @@ -339,9 +349,10 @@ // sort the data tasks.sort(function (left, right) { - var leftSortValue = left.sortValue(self.sortBy()); - var rightSortValue = right.sortValue(self.sortBy()); - if (self.sortBy() == 'createdAt' || self.sortBy() == 'duration') { + var sortField = self.sortField(); + var leftSortValue = left.sortValue(sortField); + var rightSortValue = right.sortValue(sortField); + if (sortField == 'createdAt' || sortField == 'duration') { if (self.sortDirection() == 'descending') { return rightSortValue - leftSortValue } else { @@ -394,7 +405,7 @@ } if (isStorageSupported()) { - localStorage.setItem('last:time_tracker_task', task ? task.public_id() : 0); + localStorage.setItem('last:time_tracker:task_id', task ? task.public_id() : 0); } self.formChanged(false); @@ -523,7 +534,7 @@ self.update(response); model.formChanged(false); if (isStorageSupported()) { - localStorage.setItem('last:time_tracker_task', self.public_id()); + localStorage.setItem('last:time_tracker:task_id', self.public_id()); } if (isNew) { toastr.success("{{ trans('texts.created_task') }}");