Working on time tracker

This commit is contained in:
Hillel Coren 2017-09-28 12:01:27 +03:00
parent 9fba49009c
commit e0ac6cf2bf
3 changed files with 23 additions and 11 deletions

View File

@ -2467,6 +2467,7 @@ $LANG = array(
'stopped' => 'Stopped',
'ascending' => 'Ascending',
'descending' => 'Descending',
'sort_field' => 'Sort By',
'sort_direction' => 'Direction',
);

View File

@ -234,13 +234,13 @@
</div>
<div class="row">
<div class="col-md-6" style="padding-top:24px;">
{!! 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}') !!}
</div>
<div class="col-md-6" style="padding-top:24px;">
{!! 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() {

View File

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