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', 'stopped' => 'Stopped',
'ascending' => 'Ascending', 'ascending' => 'Ascending',
'descending' => 'Descending', 'descending' => 'Descending',
'sort_field' => 'Sort By',
'sort_direction' => 'Direction', 'sort_direction' => 'Direction',
); );

View File

@ -234,13 +234,13 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6" style="padding-top:24px;"> <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.date'), 'createdAt')
->addOption(trans('texts.duration'), 'duration') ->addOption(trans('texts.duration'), 'duration')
->addOption(trans('texts.client'), 'client') ->addOption(trans('texts.client'), 'client')
->addOption(trans('texts.project'), 'project') ->addOption(trans('texts.project'), 'project')
->addOption(trans('texts.description'), 'description') ->addOption(trans('texts.description'), 'description')
->data_bind('value: sortBy, event: {change: onSortChange}') !!} ->data_bind('value: sortField, event: {change: onSortChange}') !!}
</div> </div>
<div class="col-md-6" style="padding-top:24px;"> <div class="col-md-6" style="padding-top:24px;">
{!! Former::select('sort_direction') {!! Former::select('sort_direction')
@ -478,7 +478,7 @@
model.tock(); model.tock();
if (isStorageSupported()) { if (isStorageSupported()) {
var taskId = localStorage.getItem('last:time_tracker_task'); var taskId = localStorage.getItem('last:time_tracker:task_id');
var task = model.taskById(taskId); var task = model.taskById(taskId);
if (task) { if (task) {
setTimeout(function() { setTimeout(function() {

View File

@ -13,9 +13,16 @@
self.selectedClient = ko.observable(false); self.selectedClient = ko.observable(false);
self.selectedProject = 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.filterState = ko.observable('all');
self.sortBy = ko.observable('createdAt'); self.sortField = ko.observable(defaultSortField);
self.sortDirection = ko.observable('descending'); self.sortDirection = ko.observable(defaultSortDirection);
self.isDesktop = function() { self.isDesktop = function() {
return navigator.userAgent == 'Time Tracker'; return navigator.userAgent == 'Time Tracker';
@ -32,7 +39,10 @@
} }
self.onSortChange = function() { 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) { self.onFilterClick = function(event) {
@ -339,9 +349,10 @@
// sort the data // sort the data
tasks.sort(function (left, right) { tasks.sort(function (left, right) {
var leftSortValue = left.sortValue(self.sortBy()); var sortField = self.sortField();
var rightSortValue = right.sortValue(self.sortBy()); var leftSortValue = left.sortValue(sortField);
if (self.sortBy() == 'createdAt' || self.sortBy() == 'duration') { var rightSortValue = right.sortValue(sortField);
if (sortField == 'createdAt' || sortField == 'duration') {
if (self.sortDirection() == 'descending') { if (self.sortDirection() == 'descending') {
return rightSortValue - leftSortValue return rightSortValue - leftSortValue
} else { } else {
@ -394,7 +405,7 @@
} }
if (isStorageSupported()) { 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); self.formChanged(false);
@ -523,7 +534,7 @@
self.update(response); self.update(response);
model.formChanged(false); model.formChanged(false);
if (isStorageSupported()) { if (isStorageSupported()) {
localStorage.setItem('last:time_tracker_task', self.public_id()); localStorage.setItem('last:time_tracker:task_id', self.public_id());
} }
if (isNew) { if (isNew) {
toastr.success("{{ trans('texts.created_task') }}"); toastr.success("{{ trans('texts.created_task') }}");