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') }}");