summaryrefslogtreecommitdiffstats
path: root/apps/tasks/js
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2012-02-23 21:11:31 +0100
committerBart Visscher <bartv@thisnet.nl>2012-02-23 21:11:31 +0100
commit8f9c85232508ffb9bda4f5fdeddb3e3630af0ba1 (patch)
tree8b7a1431d0f0b6b014e5c49a31e2c55bdebeed66 /apps/tasks/js
parentc768751c23fe6d5acdcde1124faff6f8dc587509 (diff)
downloadnextcloud-server-8f9c85232508ffb9bda4f5fdeddb3e3630af0ba1.tar.gz
nextcloud-server-8f9c85232508ffb9bda4f5fdeddb3e3630af0ba1.zip
Add filtering on category, priority and location
Diffstat (limited to 'apps/tasks/js')
-rw-r--r--apps/tasks/js/tasks.js54
1 files changed, 51 insertions, 3 deletions
diff --git a/apps/tasks/js/tasks.js b/apps/tasks/js/tasks.js
index 6400a8f5120..37ab504a72f 100644
--- a/apps/tasks/js/tasks.js
+++ b/apps/tasks/js/tasks.js
@@ -1,14 +1,50 @@
+OC.Tasks = {
+ filter:function(tag, find_filter) {
+ var tag_text = $(tag).text();
+ var filter = !$(tag).hasClass('active');
+ var show_count = $('#tasks').data('show_count');
+ show_count += filter ? +1 : -1;
+ $('#tasks').data('show_count', show_count);
+ $('#tasks .task').each(function(i, task_container){
+ task_container = $(task_container);
+ var task = task_container.data('task');
+ var found = 0;
+ task_container.find(find_filter).each(function(){
+ if ($(this).text() == tag_text) {
+ $(this).toggleClass('active');
+ found = 1;
+ }
+ });
+ var hide_count = task_container.data('show_count');
+ if (!filter) {
+ hide_count-=found;
+ }
+ else {
+ hide_count+=found;
+ }
+ if (hide_count == show_count) {
+ task_container.show();
+ }
+ else {
+ task_container.hide();
+ }
+ task_container.data('show_count', hide_count);
+ });
+ }
+};
+
$(document).ready(function(){
/*-------------------------------------------------------------------------
* Actions for startup
*-----------------------------------------------------------------------*/
$.getJSON(OC.filePath('tasks', 'ajax', 'gettasks.php'), function(jsondata) {
- var tasks = $('#tasks').empty();
+ var tasks = $('#tasks').empty().data('show_count', 0);
var actions = $('#task_actions_template');
$(jsondata).each(function(i, task) {
var task_container = $('<div>').appendTo(tasks)
.addClass('task')
.data('task', task)
+ .data('show_count', 0)
.attr('data-id', task.id)
.append($('<p>')
.html('<a href="index.php?id='+task.id+'">'+task.summary+'</a>')
@@ -62,8 +98,8 @@ $(document).ready(function(){
/*-------------------------------------------------------------------------
* Event handlers
*-----------------------------------------------------------------------*/
- $('#tasks div').live('click',function(){
- var id = $(this).data('id');
+ $('#tasks div.task .summary').live('click',function(){
+ var id = $(this).parent('div.task').data('id');
var oldid = $('#task_details').data('id');
if(oldid != 0){
$('#tasks li[data-id="'+oldid+'"]').removeClass('active');
@@ -81,6 +117,18 @@ $(document).ready(function(){
return false;
});
+ $('#tasks div.categories .tag').live('click',function(){
+ OC.Tasks.filter(this, 'div.categories .tag');
+ });
+
+ $('#tasks .priority.tag').live('click',function(){
+ OC.Tasks.filter(this, '.priority.tag');
+ });
+
+ $('#tasks .location.tag').live('click',function(){
+ OC.Tasks.filter(this, '.location.tag');
+ });
+
$('#tasks_delete').live('click',function(){
var id = $('#task_details').data('id');
$.getJSON('ajax/delete.php',{'id':id},function(jsondata){