mirror of
https://github.com/maxpozdeev/mytinytodo.git
synced 2026-03-11 08:55:27 +00:00
experimental sort by title (disabled yet)
This commit is contained in:
parent
e41429c174
commit
86c02990c1
6 changed files with 22 additions and 2 deletions
|
|
@ -1297,6 +1297,10 @@ function changeTaskOrder(id)
|
|||
if (taskOrder.length < 2) {
|
||||
return;
|
||||
}
|
||||
if (id && (curList.sort == 5 || curList.sort == 105)) {
|
||||
// re-sort the whole list in case of database sorting is not the same due to collation
|
||||
changeTaskOrder();
|
||||
}
|
||||
const oldOrder = taskOrder.slice();
|
||||
function firstNonZero(order, compl, ...args) {
|
||||
const m = (order < 100) ? 1 : -1;
|
||||
|
|
@ -1354,6 +1358,16 @@ function changeTaskOrder(id)
|
|||
taskList[a].ow - taskList[b].ow
|
||||
))
|
||||
}
|
||||
// sortByTitle and reverse
|
||||
else if (curList.sort == 5 || curList.sort == 105) {
|
||||
taskOrder.sort( (a, b) => firstNonZero(
|
||||
curList.sort,
|
||||
taskList[a].compl - taskList[b].compl,
|
||||
taskList[a].title.localeCompare(taskList[b].title, 'en', {sensitivity: 'base'}),
|
||||
taskList[b].prio - taskList[a].prio,
|
||||
taskList[a].ow - taskList[b].ow
|
||||
))
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -234,8 +234,9 @@ class ListsController extends ApiController {
|
|||
static function setListSortingById(int $listId, int $sort)
|
||||
{
|
||||
$db = DBConnection::instance();
|
||||
if ($sort < 0 || $sort > 104) $sort = 0;
|
||||
elseif ($sort < 101 && $sort > 4) $sort = 0;
|
||||
if ($sort < 0 || ($sort > 5 && $sort < 101) || $sort > 105) {
|
||||
$sort = 0;
|
||||
}
|
||||
if ($listId == -1) {
|
||||
$opts = Config::requestDomain('alltasks.json');
|
||||
$opts['sort'] = $sort;
|
||||
|
|
|
|||
|
|
@ -91,6 +91,8 @@ class TasksController extends ApiController {
|
|||
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)
|
||||
elseif ($sort == 5) $sqlSort .= "title ASC, prio DESC, ow ASC"; // byTitle
|
||||
elseif ($sort == 105) $sqlSort .= "title DESC, prio ASC, ow DESC"; // byTitle (reverse)
|
||||
else $sqlSort .= "ow ASC";
|
||||
|
||||
$t = array();
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
"tagfilter_cancel": "cancel filter",
|
||||
"showTagsFromAllLists": "Show tags from all lists",
|
||||
"sortByHand": "Sort by hand",
|
||||
"sortByTitle": "Sort by title",
|
||||
"sortByPriority": "Sort by priority",
|
||||
"sortByDueDate": "Sort by due date",
|
||||
"sortByDateCreated": "Sort by date created",
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
"tagfilter_cancel": "отменить фильтр по тегу",
|
||||
"showTagsFromAllLists": "Показать теги из всех списков",
|
||||
"sortByHand": "Сортировка вручную",
|
||||
"sortByTitle": "Сортировка по алфавиту",
|
||||
"sortByPriority": "Сортировка по приоритету",
|
||||
"sortByDueDate": "Сортировка по сроку",
|
||||
"sortByDateCreated": "Сортировка по дате добавления",
|
||||
|
|
|
|||
|
|
@ -237,6 +237,7 @@ $().ready(function(){
|
|||
<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>
|
||||
<!--<li class="mtt-need-list sort-item" id="sortByTitle"><div class="menu-icon"></div><?php _e('sortByTitle');?> <span class="mtt-sort-direction"></span></li>-->
|
||||
<li class="mtt-menu-delimiter"></li>
|
||||
<li class="mtt-need-list" id="btnShowCompleted"><div class="menu-icon"></div><?php _e('list_showcompleted');?></li>
|
||||
</ul>
|
||||
|
|
|
|||
Loading…
Reference in a new issue