diff --git a/app/Http/Controllers/TimeTrackerController.php b/app/Http/Controllers/TimeTrackerController.php index 154c3a37b5f8..cc456f612419 100644 --- a/app/Http/Controllers/TimeTrackerController.php +++ b/app/Http/Controllers/TimeTrackerController.php @@ -16,7 +16,7 @@ class TimeTrackerController extends Controller $data = [ 'title' => trans('texts.time_tracker'), - 'tasks' => Task::scope()->get(), + 'tasks' => Task::scope()->with('project', 'client.contacts')->get(), 'account' => $account, ]; diff --git a/resources/views/time_tracker.blade.php b/resources/views/time_tracker.blade.php index 78d185fe878e..44a3eabb13ba 100644 --- a/resources/views/time_tracker.blade.php +++ b/resources/views/time_tracker.blade.php @@ -9,6 +9,16 @@ outline: none; } + span.link { + cursor:pointer; + color:#0000EE; + text-decoration:none; + } + + span.link:hover { + text-decoration:underline; + } + .no-gutter > [class*='col-'] { padding-right:0; padding-left:0; @@ -87,9 +97,10 @@ -
+- ... + +
@@ -125,6 +136,12 @@ return true; } + self.viewProject = function(task) { + console.log('view project'); + self.filter(task.project.name()); + return false; + } + self.onStartClick = function() { if (self.selectedTask()) { console.log('start w/selected...'); @@ -198,15 +215,13 @@ return self.tasks(); } else { var filtered = ko.utils.arrayFilter(self.tasks(), function(task) { - var description = task.description().toLowerCase(); - return description.indexOf(self.filter().toLowerCase()) >= 0; + return task.matchesFilter(self.filter()); }); return filtered.length == 0 ? self.tasks() : filtered; } }); self.addTask = function(task) { - console.log(task); self.tasks.push(task); } @@ -221,8 +236,17 @@ self.description = ko.observable('test'); self.time_log = ko.observableArray(); + self.mapping = { + 'project': { + create: function(data) { + console.log(data.data); + return new ProjectModel(data.data); + } + }, + } + if (data) { - ko.mapping.fromJS(data, {}, this); + ko.mapping.fromJS(data, self.mapping, this); self.time_log = ko.observableArray(); data = JSON.parse(data.time_log); for (var i=0; i