mirror of
https://github.com/maxpozdeev/mytinytodo.git
synced 2026-03-11 08:55:27 +00:00
+ added sorting by date created and date modified; All sortings available in reverse order
This commit is contained in:
parent
1ac865d5dd
commit
386240af6a
5 changed files with 75 additions and 11 deletions
15
src/ajax.php
15
src/ajax.php
|
|
@ -73,8 +73,14 @@ elseif(isset($_GET['loadTasks']))
|
|||
if($s != '') $sqlWhere .= " AND (title LIKE ". $db->quoteForLike("%%%s%%",$s). " OR note LIKE ". $db->quoteForLike("%%%s%%",$s). ")";
|
||||
$sort = (int)_get('sort');
|
||||
$sqlSort = "ORDER BY compl ASC, ";
|
||||
if($sort == 1) $sqlSort .= "prio DESC, ddn ASC, duedate ASC, ow ASC";
|
||||
elseif($sort == 2) $sqlSort .= "ddn ASC, duedate ASC, prio DESC, ow ASC";
|
||||
if($sort == 1) $sqlSort .= "prio DESC, ddn ASC, duedate ASC, ow ASC"; // byPrio
|
||||
elseif($sort == 101) $sqlSort .= "prio ASC, ddn DESC, duedate DESC, ow DESC"; // byPrio (reverse)
|
||||
elseif($sort == 2) $sqlSort .= "ddn ASC, duedate ASC, prio DESC, ow ASC"; // byDueDate
|
||||
elseif($sort == 102) $sqlSort .= "ddn DESC, duedate DESC, prio ASC, ow DESC";// byDueDate (reverse)
|
||||
elseif($sort == 3) $sqlSort .= "d_created ASC, prio DESC, ow ASC"; // byDateCreated
|
||||
elseif($sort == 103) $sqlSort .= "d_created DESC, prio ASC, ow DESC"; // byDateCreated (reverse)
|
||||
elseif($sort == 4) $sqlSort .= "d_edited ASC, prio DESC, ow ASC"; // byDateModified
|
||||
elseif($sort == 104) $sqlSort .= "d_edited DESC, prio ASC, ow DESC"; // byDateModified (reverse)
|
||||
else $sqlSort .= "ow ASC";
|
||||
$t = array();
|
||||
$t['total'] = 0;
|
||||
|
|
@ -426,7 +432,8 @@ elseif(isset($_GET['setSort']))
|
|||
check_write_access();
|
||||
$listId = (int)_post('list');
|
||||
$sort = (int)_post('sort');
|
||||
if($sort < 0 || $sort > 2) $sort = 0;
|
||||
if($sort < 0 || $sort > 104) $sort = 0;
|
||||
elseif($sort < 101 && $sort > 4) $sort = 0;
|
||||
$db->ex("UPDATE {$db->prefix}lists SET sorting=$sort,d_edited=? WHERE id=$listId", array(time()));
|
||||
echo json_encode(array('total'=>1));
|
||||
exit;
|
||||
|
|
@ -535,8 +542,10 @@ function prepareTaskRow($r)
|
|||
'id' => $r['id'],
|
||||
'title' => escapeTags($r['title']),
|
||||
'date' => htmlarray($dCreated),
|
||||
'dateInt' => (int)$r['d_created'],
|
||||
'dateInline' => htmlarray(formatTime($formatCreatedInline, $r['d_created'])),
|
||||
'dateInlineTitle' => htmlarray(sprintf($lang->get('taskdate_inline_created'), $dCreated)),
|
||||
'dateEditedInt' => (int)$r['d_edited'],
|
||||
'dateCompleted' => htmlarray($dCompleted),
|
||||
'dateCompletedInline' => $r['d_completed'] ? htmlarray(formatTime($formatCompletedInline, $r['d_completed'])) : '',
|
||||
'dateCompletedInlineTitle' => htmlarray(sprintf($lang->get('taskdate_inline_completed'), $dCompleted)),
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@ class DefaultLang
|
|||
'sortByHand' => "Sort by hand",
|
||||
'sortByPriority' => "Sort by priority",
|
||||
'sortByDueDate' => "Sort by due date",
|
||||
'sortByDateCreated' => "Sort by date created",
|
||||
'sortByDateModified' => "Sort by date modified",
|
||||
'due' => "Due",
|
||||
'daysago' => "%d days ago",
|
||||
'indays' => "in %d days",
|
||||
|
|
|
|||
|
|
@ -61,6 +61,8 @@ class Lang extends DefaultLang
|
|||
'sortByHand' => "Sort by hand",
|
||||
'sortByPriority' => "Sort by priority",
|
||||
'sortByDueDate' => "Sort by due date",
|
||||
'sortByDateCreated' => "Sort by date created",
|
||||
'sortByDateModified' => "Sort by date modified",
|
||||
'due' => "Due",
|
||||
'daysago' => "%d days ago",
|
||||
'indays' => "in %d days",
|
||||
|
|
|
|||
|
|
@ -840,22 +840,67 @@ function changeTaskOrder(id)
|
|||
id = parseInt(id);
|
||||
if(taskOrder.length < 2) return;
|
||||
var oldOrder = taskOrder.slice();
|
||||
// sortByHand
|
||||
if(curList.sort == 0) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
return taskList[a].ow-taskList[b].ow
|
||||
});
|
||||
// sortByPrio
|
||||
else if(curList.sort == 1) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
if(taskList[a].prio != taskList[b].prio) return taskList[b].prio-taskList[a].prio;
|
||||
if(taskList[a].dueInt != taskList[b].dueInt) return taskList[a].dueInt-taskList[b].dueInt;
|
||||
return taskList[a].ow-taskList[b].ow;
|
||||
});
|
||||
// sortByPrio (reverse)
|
||||
else if(curList.sort == 101) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
if(taskList[a].prio != taskList[b].prio) return taskList[a].prio-taskList[b].prio;
|
||||
if(taskList[a].dueInt != taskList[b].dueInt) return taskList[b].dueInt-taskList[a].dueInt;
|
||||
return taskList[b].ow-taskList[a].ow;
|
||||
});
|
||||
// sortByDueDate
|
||||
else if(curList.sort == 2) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
if(taskList[a].dueInt != taskList[b].dueInt) return taskList[a].dueInt-taskList[b].dueInt;
|
||||
if(taskList[a].prio != taskList[b].prio) return taskList[b].prio-taskList[a].prio;
|
||||
return taskList[a].ow-taskList[b].ow;
|
||||
});
|
||||
// sortByDueDate (reverse)
|
||||
else if(curList.sort == 102) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
if(taskList[a].dueInt != taskList[b].dueInt) return taskList[b].dueInt-taskList[a].dueInt;
|
||||
if(taskList[a].prio != taskList[b].prio) return taskList[a].prio-taskList[b].prio;
|
||||
return taskList[b].ow-taskList[a].ow;
|
||||
});
|
||||
// sortByDateCreated
|
||||
else if(curList.sort == 3) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
if(taskList[a].dateInt != taskList[b].dateInt) return taskList[a].dateInt-taskList[b].dateInt;
|
||||
if(taskList[a].prio != taskList[b].prio) return taskList[b].prio-taskList[a].prio;
|
||||
return taskList[a].ow-taskList[b].ow;
|
||||
});
|
||||
// sortByDateCreated (reverse)
|
||||
else if(curList.sort == 103) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
if(taskList[a].dateInt != taskList[b].dateInt) return taskList[b].dateInt-taskList[a].dateInt;
|
||||
if(taskList[a].prio != taskList[b].prio) return taskList[a].prio-taskList[b].prio;
|
||||
return taskList[b].ow-taskList[a].ow;
|
||||
});
|
||||
// sortByDateModified
|
||||
else if(curList.sort == 4) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
if(taskList[a].dateEditedInt != taskList[b].dateEditedInt) return taskList[a].dateEditedInt-taskList[b].dateEditedInt;
|
||||
if(taskList[a].prio != taskList[b].prio) return taskList[b].prio-taskList[a].prio;
|
||||
return taskList[a].ow-taskList[b].ow;
|
||||
});
|
||||
// sortByDateModified (reverse)
|
||||
else if(curList.sort == 104) taskOrder.sort( function(a,b){
|
||||
if(taskList[a].compl != taskList[b].compl) return taskList[a].compl-taskList[b].compl;
|
||||
if(taskList[a].dateEditedInt != taskList[b].dateEditedInt) return taskList[b].dateEditedInt-taskList[a].dateEditedInt;
|
||||
if(taskList[a].prio != taskList[b].prio) return taskList[a].prio-taskList[b].prio;
|
||||
return taskList[b].ow-taskList[a].ow;
|
||||
});
|
||||
else return;
|
||||
if(oldOrder.toString() == taskOrder.toString()) return;
|
||||
if(id && taskList[id])
|
||||
|
|
@ -911,10 +956,12 @@ function setTaskPrio(id, prio)
|
|||
|
||||
function setSort(v, init)
|
||||
{
|
||||
$('#mylistscontainer .sort-item').removeClass('mtt-item-checked');
|
||||
$('#mylistscontainer .sort-item').removeClass('mtt-item-checked').children('.mtt-sort-direction').text('');
|
||||
if(v == 0) $('#sortByHand').addClass('mtt-item-checked');
|
||||
else if(v == 1) $('#sortByPrio').addClass('mtt-item-checked');
|
||||
else if(v == 2) $('#sortByDueDate').addClass('mtt-item-checked');
|
||||
else if(v==1 || v==101) $('#sortByPrio').addClass('mtt-item-checked').children('.mtt-sort-direction').text(v==1 ? '↑' : '↓');
|
||||
else if(v==2 || v==102) $('#sortByDueDate').addClass('mtt-item-checked').children('.mtt-sort-direction').text(v==2 ? '↑' : '↓');
|
||||
else if(v==3 || v==103) $('#sortByDateCreated').addClass('mtt-item-checked').children('.mtt-sort-direction').text(v==3 ? '↓' : '↑');
|
||||
else if(v==4 || v==104) $('#sortByDateModified').addClass('mtt-item-checked').children('.mtt-sort-direction').text(v==4 ? '↓' : '↑');
|
||||
else return;
|
||||
|
||||
/* //port:
|
||||
|
|
@ -1049,8 +1096,10 @@ function listMenuClick(el, menu)
|
|||
case 'btnShowCompleted': showCompletedToggle(); break;
|
||||
case 'btnClearCompleted': clearCompleted(); break;
|
||||
case 'sortByHand': setSort(0); break;
|
||||
case 'sortByPrio': setSort(1); break;
|
||||
case 'sortByDueDate': setSort(2); break;
|
||||
case 'sortByPrio': setSort(curList.sort==1 ? 101 : 1); break;
|
||||
case 'sortByDueDate': setSort(curList.sort==2 ? 102 : 2); break;
|
||||
case 'sortByDateCreated': setSort(curList.sort==3 ? 103 : 3); break;
|
||||
case 'sortByDateModified': setSort(curList.sort==4 ? 104 : 4); break;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -226,9 +226,11 @@ $().ready(function(){
|
|||
<li class="mtt-need-list" id="btnPublish"><div class="menu-icon"></div><?php _e('list_publish');?></li>
|
||||
<li class="mtt-need-list" id="btnShowCompleted"><div class="menu-icon"></div><?php _e('list_showcompleted');?></li>
|
||||
<li class="mtt-menu-delimiter"></li>
|
||||
<li class="mtt-need-list sort-item" id="sortByHand"><div class="menu-icon"></div><?php _e('sortByHand');?></li>
|
||||
<li class="mtt-need-list sort-item" id="sortByPrio"><div class="menu-icon"></div><?php _e('sortByPriority');?></li>
|
||||
<li class="mtt-need-list sort-item" id="sortByDueDate"><div class="menu-icon"></div><?php _e('sortByDueDate');?></li>
|
||||
<li class="mtt-need-list sort-item" id="sortByHand"><div class="menu-icon"></div><?php _e('sortByHand');?> <span class="mtt-sort-direction"></span></li>
|
||||
<li class="mtt-need-list sort-item" id="sortByDateCreated"><div class="menu-icon"></div><?php _e('sortByDateCreated');?> <span class="mtt-sort-direction"></span></li>
|
||||
<li class="mtt-need-list sort-item" id="sortByPrio"><div class="menu-icon"></div><?php _e('sortByPriority');?> <span class="mtt-sort-direction"></span></li>
|
||||
<li class="mtt-need-list sort-item" id="sortByDueDate"><div class="menu-icon"></div><?php _e('sortByDueDate');?> <span class="mtt-sort-direction"></span></li>
|
||||
<li class="mtt-need-list sort-item" id="sortByDateModified"><div class="menu-icon"></div><?php _e('sortByDateModified');?> <span class="mtt-sort-direction"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue