diff --git a/app/Http/Controllers/TimeTrackerController.php b/app/Http/Controllers/TimeTrackerController.php index bacf1cc0e77e..98c3a2649a1b 100644 --- a/app/Http/Controllers/TimeTrackerController.php +++ b/app/Http/Controllers/TimeTrackerController.php @@ -12,6 +12,7 @@ class TimeTrackerController extends Controller public function index() { $data = [ + 'title' => trans('texts.time_tracker'), 'tasks' => Task::scope()->get(), ]; diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 0d350ecf9a68..d7f9c66e3aad 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2449,6 +2449,7 @@ $LANG = array( 'pro_plan_calendar' => ':link to enable the calendar by joining the Pro Plan', 'what_are_you_working_on' => 'What are you working on?', + 'time_tracker' => 'Time Tracker', ); diff --git a/resources/views/time_tracker.blade.php b/resources/views/time_tracker.blade.php index 6ab0e3c75724..7fbc21ebe283 100644 --- a/resources/views/time_tracker.blade.php +++ b/resources/views/time_tracker.blade.php @@ -33,8 +33,8 @@
- +
@@ -43,8 +43,13 @@
-
- +
+
+
+ + +
+ 14 @@ -62,10 +67,38 @@ function ViewModel() { var self = this; self.tasks = ko.observableArray(); + self.filter = ko.observable(''); + self.selectedTask = ko.observable(new TaskModel()); + + self.placeholder = ko.computed(function() { + if (self.selectedTask() && self.selectedTask().description) { + return self.selectedTask().description(); + } else { + return "{{ trans('texts.what_are_you_working_on') }}"; + } + }); + + self.filteredTasks = ko.computed(function() { + if(! self.filter()) { + 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 filtered.length == 0 ? self.tasks() : filtered; + } + }); self.addTask = function(task) { + console.log(task); self.tasks.push(task); } + + self.selectTask = function(task) { + self.filter(''); + self.selectedTask(task); + } } function TaskModel(data) { @@ -81,7 +114,6 @@ window.model = new ViewModel(); for (var i=0; i