mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-07 18:14:32 -04:00
Working on time tracker app
This commit is contained in:
parent
2c5e7f2506
commit
1997973093
@ -12,6 +12,7 @@ class TimeTrackerController extends Controller
|
|||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$data = [
|
$data = [
|
||||||
|
'title' => trans('texts.time_tracker'),
|
||||||
'tasks' => Task::scope()->get(),
|
'tasks' => Task::scope()->get(),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2449,6 +2449,7 @@ $LANG = array(
|
|||||||
'pro_plan_calendar' => ':link to enable the calendar by joining the Pro Plan',
|
'pro_plan_calendar' => ':link to enable the calendar by joining the Pro Plan',
|
||||||
|
|
||||||
'what_are_you_working_on' => 'What are you working on?',
|
'what_are_you_working_on' => 'What are you working on?',
|
||||||
|
'time_tracker' => 'Time Tracker',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -33,8 +33,8 @@
|
|||||||
<form>
|
<form>
|
||||||
<div class="input-group input-group-lg">
|
<div class="input-group input-group-lg">
|
||||||
<span class="input-group-addon" style="width:1%;"><span class="glyphicon glyphicon-time"></span></span>
|
<span class="input-group-addon" style="width:1%;"><span class="glyphicon glyphicon-time"></span></span>
|
||||||
<input type="text" class="form-control"
|
<input type="text" class="form-control search" data-bind="value: filter, valueUpdate: 'afterkeydown', attr: {placeholder: placeholder}"
|
||||||
placeholder="{{ trans('texts.what_are_you_working_on') }}" autocomplete="off" autofocus="autofocus">
|
autocomplete="off" autofocus="autofocus">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@ -43,8 +43,13 @@
|
|||||||
|
|
||||||
<div style="height:74px"></div>
|
<div style="height:74px"></div>
|
||||||
|
|
||||||
<div class="list-group" data-bind="foreach: tasks">
|
<div class="well">
|
||||||
<a href="#" class="list-group-item list-group-item-type1">
|
<div data-bind="text: selectedTask().description"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="list-group" data-bind="foreach: filteredTasks">
|
||||||
|
<a href="#" data-bind="click: $parent.selectTask" class="list-group-item list-group-item-type1">
|
||||||
<span class="pull-right">
|
<span class="pull-right">
|
||||||
14
|
14
|
||||||
</span>
|
</span>
|
||||||
@ -62,10 +67,38 @@
|
|||||||
function ViewModel() {
|
function ViewModel() {
|
||||||
var self = this;
|
var self = this;
|
||||||
self.tasks = ko.observableArray();
|
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) {
|
self.addTask = function(task) {
|
||||||
|
console.log(task);
|
||||||
self.tasks.push(task);
|
self.tasks.push(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.selectTask = function(task) {
|
||||||
|
self.filter('');
|
||||||
|
self.selectedTask(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function TaskModel(data) {
|
function TaskModel(data) {
|
||||||
@ -81,7 +114,6 @@
|
|||||||
window.model = new ViewModel();
|
window.model = new ViewModel();
|
||||||
for (var i=0; i<tasks.length; i++) {
|
for (var i=0; i<tasks.length; i++) {
|
||||||
var task = tasks[i];
|
var task = tasks[i];
|
||||||
console.log(task);
|
|
||||||
var taskModel = new TaskModel(task);
|
var taskModel = new TaskModel(task);
|
||||||
model.addTask(taskModel);
|
model.addTask(taskModel);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user