diff --git a/src/ajax.js b/src/ajax.js index 8dde109..a3f7b1c 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -29,6 +29,7 @@ var page = {cur:'', prev:''}; function loadTasks() { if(!curList) return false; + setSort(curList.sort, 1); var tz = -1 * (new Date()).getTimezoneOffset(); setAjaxErrorTrigger(); var search = filter.search ? '&s='+encodeURIComponent(filter.search) : ''; @@ -470,14 +471,12 @@ function updateAccessStatus() } } if(flag.needAuth && flag.canAllRead && !flag.isLogged) { - $("#tasklist").sortable('disable'); $('#page_tasks').addClass('readonly') $("#authstr").text(lang.readonly).show(); addsearchToggle(1); } else { $('#page_tasks').removeClass('readonly') - if(sortBy == 0) $("#tasklist").sortable('enable'); $("#authstr").text('').hide(); } $('#page_ajax').hide(); @@ -628,16 +627,25 @@ function setSort(v, init) else if(v == 1) $('#sort>.btnstr').text($('#sortByPrio').text()); else if(v == 2) $('#sort>.btnstr').text($('#sortByDueDate').text()); else return; - if(sortBy != v) { - sortBy = v; - if(v==0) $("#tasklist").sortable('enable'); - else $("#tasklist").sortable('disable'); - if(!init) { - changeTaskOrder(); - var exp = new Date(); - exp.setTime(exp.getTime() + 3650*86400*1000); //+10 years - document.cookie = "sort="+sortBy+'; expires='+exp.toUTCString(); - } + + if(flag.needAuth && flag.canAllRead && !flag.isLogged) { + $("#tasklist").sortable('disable'); + return; + } + sortBy = v; + if(sortBy==0) $("#tasklist").sortable('enable'); + else $("#tasklist").sortable('disable'); + + if(!init) + { + curList.sort = sortBy; + tabLists[curList.i].sort = sortBy; + changeTaskOrder(); + setAjaxErrorTrigger() + var nocache = '&rnd='+Math.random(); + $.post('ajax.php?setSort'+nocache, { list:curList.id, sort:sortBy }, function(json){ + resetAjaxErrorTrigger(); + }, 'json'); } } diff --git a/src/ajax.php b/src/ajax.php index 25877c9..0daa4e1 100644 --- a/src/ajax.php +++ b/src/ajax.php @@ -23,7 +23,7 @@ if(isset($_GET['loadLists'])) while($r = $q->fetch_assoc($q)) { $t['total']++; - $t['list'][] = array('id'=>$r['id'], 'name'=>htmlarray($r['name'])); + $t['list'][] = array('id'=>$r['id'], 'name'=>htmlarray($r['name']), 'sort'=>$r['sorting']); } echo json_encode($t); exit; @@ -399,6 +399,16 @@ elseif(isset($_POST['deleteList'])) echo json_encode($t); exit; } +elseif(isset($_GET['setSort'])) +{ + check_write_access(); + $listId = (int)_post('list'); + $sort = (int)_post('sort'); + if($sort < 0 || $sort > 2) $sort = 0; + $db->ex("UPDATE lists SET sorting=$sort WHERE id=$listId"); + echo json_encode(array('total'=>1)); + exit; +} ################################################################################################### diff --git a/src/index.php b/src/index.php index 2ccf94f..29e02a7 100644 --- a/src/index.php +++ b/src/index.php @@ -12,9 +12,6 @@ require_once('./lang/'.$config['lang'].'.php'); $lang = new Lang(); -$sort = 0; -if(isset($_COOKIE['sort']) && $_COOKIE['sort'] != '') $sort = (int)$_COOKIE['sort']; - if($config['duedateformat'] == 2) $duedateformat = 'm/d/yy'; elseif($config['duedateformat'] == 3) $duedateformat = 'dd.mm.yy'; elseif($config['duedateformat'] == 4) $duedateformat = 'dd/mm/yy'; @@ -61,7 +58,6 @@ $().ready(function(){ $("#tasklist").bind("click", tasklistClick); $("#edittags").autocomplete('ajax.php?suggestTags', {scroll: false, multiple: true, selectFirst:false, max:8, extraParams:{list:function(){return curList.id}}}); $("#priopopup").mouseleave(function(){$(this).hide()}); - setSort(,1);