mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-22 11:38:24 +00:00
checklists: better handling of saveTask, keypress:13, and remove-blur
This commit is contained in:
parent
0fe2804c3c
commit
ebc7cf6bcb
2 changed files with 14 additions and 14 deletions
|
|
@ -42,9 +42,11 @@ habitrpg.controller("TasksCtrl", ['$scope', '$rootScope', '$location', 'User','N
|
|||
User.user.ops.deleteTask({params:{id:list[$index].id}})
|
||||
};
|
||||
|
||||
$scope.saveTask = function(task) {
|
||||
$scope.saveTask = function(task, stayOpen) {
|
||||
if (task.checklist && task.checklist[0])
|
||||
task.checklist = _.filter(task.checklist,function(i){return !!i.text});
|
||||
User.user.ops.updateTask({params:{id:task.id},body:task});
|
||||
task._editing = false;
|
||||
if (!stayOpen) task._editing = false;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -87,24 +89,22 @@ habitrpg.controller("TasksCtrl", ['$scope', '$rootScope', '$location', 'User','N
|
|||
$('#task-'+task.id+' .checklist-form .inline-edit')[0].focus();
|
||||
});
|
||||
}
|
||||
$scope.checkChecklistItem = function(task){
|
||||
User.user.ops.updateTask({params:{id:task.id},body:task});
|
||||
}
|
||||
$scope.saveChecklist = function(task,$event,$index) {
|
||||
User.user.ops.updateTask({params:{id:task.id},body:task});
|
||||
task.checklist = _.filter(task.checklist,function(i){return !!i.text});
|
||||
$event.target.blur();
|
||||
$scope.addChecklistItem = function(task,$event,$index) {
|
||||
if ($index == task.checklist.length-1){
|
||||
User.user.ops.updateTask({params:{id:task.id},body:task}); // don't preen the new empty item
|
||||
task.checklist.push({completed:false,text:''});
|
||||
ws(function(){
|
||||
var list = $('#task-'+task.id+' .checklist-form .inline-edit');
|
||||
list[list.length-1].focus();
|
||||
},100);
|
||||
},0);
|
||||
} else {
|
||||
$scope.saveTask(task,true);
|
||||
$('#task-'+task.id+' .checklist-form .inline-edit')[$index+1].focus();
|
||||
}
|
||||
}
|
||||
$scope.removeChecklistItem = function(task,$index){
|
||||
task.checklist.splice($index,1);
|
||||
User.user.ops.updateTask({params:{id:task.id},body:task});
|
||||
$scope.saveTask(task,true);
|
||||
}
|
||||
$scope.checklistCompletion = function(checklist){
|
||||
return _.reduce(checklist,function(m,i){return m+(i.completed ? 1 : 0);},0)
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s
|
|||
div(ng-if='task.checklist && !$state.includes("options.social.challenges") && user.preferences.inlineChecklists && !task._editing')
|
||||
fieldset.option-group
|
||||
label.checkbox(ng-repeat='item in task.checklist')
|
||||
input(type='checkbox',ng-model='item.completed',ng-change='checkChecklistItem(task)')
|
||||
input(type='checkbox',ng-model='item.completed',ng-change='saveTask(task,true)')
|
||||
| {{item.text}}
|
||||
|
||||
// edit/options dialog
|
||||
|
|
@ -116,8 +116,8 @@ li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s
|
|||
li(ng-repeat='item in task.checklist')
|
||||
a.pull-right.checklist-icons(ng-click='removeChecklistItem(task,$index)')
|
||||
i.icon-trash(tooltip='Delete')
|
||||
input(type='checkbox',ng-model='item.completed',ng-change='checkChecklistItem(task)')
|
||||
input.inline-edit(type='text',ng-model='item.text',ui-keypress="{13:'saveChecklist(task,$event,$index)'}",ng-blur='saveChecklist(task,$event,$index)')
|
||||
input(type='checkbox',ng-model='item.completed',ng-change='saveTask(task,true)')
|
||||
input.inline-edit(type='text',ng-model='item.text',ui-keypress="{'13':'addChecklistItem(task,$event,$index)'}")//-,ng-blur='saveTask(task,true)')
|
||||
|
||||
|
||||
form(ng-submit='saveTask(task)')
|
||||
|
|
|
|||
Loading…
Reference in a new issue