mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Working on time tracker
This commit is contained in:
parent
9fba49009c
commit
e0ac6cf2bf
@ -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',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
@ -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() {
|
||||||
|
@ -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') }}");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user