Working on time tracker

This commit is contained in:
Hillel Coren 2017-09-27 14:25:56 +03:00
parent e8d731eb6f
commit f728c2b006
2 changed files with 18 additions and 4 deletions

View File

@ -141,7 +141,7 @@
<div class="input-group input-group-lg"> <div class="input-group input-group-lg">
<span class="input-group-addon" style="width:1%;" data-bind="click: onFilterClick" title="{{ trans('texts.filter_sort') }}"><span class="glyphicon glyphicon-filter"></span></span> <span class="input-group-addon" style="width:1%;" data-bind="click: onFilterClick" title="{{ trans('texts.filter_sort') }}"><span class="glyphicon glyphicon-filter"></span></span>
<input id="search" type="search" class="form-control search" autocomplete="off" autofocus="autofocus" <input id="search" type="search" class="form-control search" autocomplete="off" autofocus="autofocus"
data-bind="event: { focus: onFilterFocus, input: onFilterChanged, keypress: onFilterKeyPress }, value: filter, valueUpdate: 'afterkeydown', attr: {placeholder: placeholder, style: filterStyle }"> data-bind="event: { focus: onFilterFocus, input: onFilterChanged, keypress: onFilterKeyPress }, value: filter, valueUpdate: 'afterkeydown', attr: {placeholder: placeholder, style: filterStyle, disabled: formChanged }">
<span class="input-group-addon" style="width:1%;" data-bind="click: onRefreshClick" title="{{ trans('texts.refresh') }}"><span class="glyphicon glyphicon-repeat"></span></span> <span class="input-group-addon" style="width:1%;" data-bind="click: onRefreshClick" title="{{ trans('texts.refresh') }}"><span class="glyphicon glyphicon-repeat"></span></span>
</div> </div>

View File

@ -124,13 +124,16 @@
if (task.isNew()) { if (task.isNew()) {
self.selectedTask(false); self.selectedTask(false);
self.removeTask(task); self.removeTask(task);
$('.search').focus(); // wait for it to be re-enabled
setTimeout(function() {
$('#search').focus();
}, 1);
} else { } else {
task.update(task.data); task.update(task.data);
} }
self.formChanged(false); self.formChanged(false);
}, "{{ trans('texts.discard_changes') }}");
}, "{{ trans('texts.discard_changes') }}");
return false; return false;
} }
@ -207,7 +210,11 @@
self.onStartClick = function() { self.onStartClick = function() {
if (self.selectedTask()) { if (self.selectedTask()) {
self.selectedTask().onStartClick(); if (self.formChanged()) {
self.onSaveClick();
} else {
self.selectedTask().onStartClick();
}
} else { } else {
var time = new TimeModel(); var time = new TimeModel();
time.startTime(moment().unix()); time.startTime(moment().unix());
@ -223,6 +230,7 @@
self.selectedTask(task); self.selectedTask(task);
self.addTask(task); self.addTask(task);
model.refreshTitle(); model.refreshTitle();
model.formChanged(true);
self.filter(''); self.filter('');
task.focus(); task.focus();
} }
@ -616,6 +624,12 @@
return false; return false;
} }
var selectedTask = model.selectedTask();
if (model.formChanged() && selectedTask && selectedTask.public_id() && selectedTask.public_id() == self.public_id()) {
model.onSaveClick();
return false;
}
if (self.isRunning()) { if (self.isRunning()) {
var time = self.lastTime(); var time = self.lastTime();
time.endTime(moment().unix()); time.endTime(moment().unix());