mirror of
https://github.com/maxpozdeev/mytinytodo.git
synced 2026-03-11 08:55:27 +00:00
+ ability to change order of tabs (thanks to Alexander Teague)
This commit is contained in:
parent
f82c99d854
commit
ae33f625a3
3 changed files with 40 additions and 6 deletions
16
src/ajax.js
16
src/ajax.js
|
|
@ -12,7 +12,7 @@ var searchTimer;
|
|||
var objPrio = {};
|
||||
var selTask = 0;
|
||||
var sortBy = 0;
|
||||
var flag = { needAuth:false, isLogged:false, tagsChanged:true, windowTaskEditMoved:false };
|
||||
var flag = { needAuth:false, isLogged:false, tagsChanged:true, windowTaskEditMoved:false, autoTag:true };
|
||||
var taskCnt = { total:0, past: 0, today:0, soon:0 };
|
||||
var tmp = {};
|
||||
var oBtnMenu = {};
|
||||
|
|
@ -797,7 +797,7 @@ function editFormResize(startstop, event)
|
|||
function mttTabSelected(id, indx)
|
||||
{
|
||||
$('#lists .mtt-tabs-selected').removeClass('mtt-tabs-selected');
|
||||
$('#lists li.list-id-'+tabLists[indx].id).addClass('mtt-tabs-selected');
|
||||
$('#list_'+tabLists[indx].id).addClass('mtt-tabs-selected');
|
||||
if(!tabLists[indx]) return;
|
||||
if(indx != curList.i) {
|
||||
$('#tasklist').html('');
|
||||
|
|
@ -896,7 +896,7 @@ function loadLists(onInit, updAccess)
|
|||
$.each(json.list, function(i,item){
|
||||
item.i = i;
|
||||
tabLists[i] = item;
|
||||
ti += '<li class="'+(i==0?'mtt-tabs-selected':'')+' list-id-'+item.id+'"><a href="#list'+item.id+'" onClick="mttTabSelected('+item.id+','+i+');return false;" title="'+item.name+'"><span>'+item.name+'</span></a></li>';
|
||||
ti += '<li id="list_'+item.id+'" class="'+(i==0?'mtt-tabs-selected':'')+'"><a href="#list'+item.id+'" onClick="mttTabSelected('+item.id+','+i+');return false;" title="'+item.name+'"><span>'+item.name+'</span></a></li>';
|
||||
});
|
||||
if(!curList) {
|
||||
$('#toolbar').children().removeClass('invisible');
|
||||
|
|
@ -944,7 +944,7 @@ function addList()
|
|||
item.i = i;
|
||||
tabLists[i] = item;
|
||||
if(i > 0) {
|
||||
$('#lists>ul>li.mtt-tabs-button').before('<li class="'+' list-id-'+item.id+'"><a href="#list'+item.id+'" onClick="mttTabSelected('+item.id+','+i+');return false;" title="'+item.name+'"><span>'+item.name+'</span></a></li>') ;
|
||||
$('#lists>ul>li.mtt-tabs-button').before('<li id="list_'+item.id+'"><a href="#list'+item.id+'" onClick="mttTabSelected('+item.id+','+i+');return false;" title="'+item.name+'"><span>'+item.name+'</span></a></li>') ;
|
||||
mytinytodo.doAction('listAdded', {i:i, list:item});
|
||||
}
|
||||
else loadLists();
|
||||
|
|
@ -1339,3 +1339,11 @@ function showCompletedToggle()
|
|||
else $('#btnShowCompleted').removeClass('mtt-item-checked');
|
||||
loadTasks({setCompl:1});
|
||||
}
|
||||
|
||||
function listOrderChanged(event, ui)
|
||||
{
|
||||
var order = $(this).sortable("serialize");
|
||||
$.post('ajax.php?changeListOrder'+'&rnd='+Math.random(), order, function(json){
|
||||
resetAjaxErrorTrigger();
|
||||
}, 'json');
|
||||
}
|
||||
|
|
|
|||
26
src/ajax.php
26
src/ajax.php
|
|
@ -20,7 +20,7 @@ if(isset($_GET['loadLists']))
|
|||
else $sqlWhere = '';
|
||||
$t = array();
|
||||
$t['total'] = 0;
|
||||
$q = $db->dq("SELECT * FROM {$db->prefix}lists $sqlWhere ORDER BY id ASC");
|
||||
$q = $db->dq("SELECT * FROM {$db->prefix}lists $sqlWhere ORDER BY ow ASC, id ASC");
|
||||
while($r = $q->fetch_assoc($q))
|
||||
{
|
||||
$t['total']++;
|
||||
|
|
@ -423,7 +423,29 @@ elseif(isset($_GET['moveTask']))
|
|||
echo json_encode(array('total'=>$r?1:0));
|
||||
exit;
|
||||
}
|
||||
|
||||
elseif(isset($_GET['changeListOrder']))
|
||||
{
|
||||
check_write_access();
|
||||
stop_gpc($_POST);
|
||||
$order = (array)_post('list');
|
||||
$t = array();
|
||||
$t['total'] = 0;
|
||||
if($order)
|
||||
{
|
||||
$a = array();
|
||||
$setCase = '';
|
||||
foreach($order as $ow=>$id) {
|
||||
$id = (int)$id;
|
||||
$a[] = $id;
|
||||
$setCase .= "WHEN id=$id THEN $ow\n";
|
||||
}
|
||||
$ids = implode($a, ',');
|
||||
$db->dq("UPDATE {$db->prefix}lists SET ow = CASE\n $setCase END WHERE id IN ($ids)");
|
||||
$t['total'] = 1;
|
||||
}
|
||||
echo json_encode($t);
|
||||
exit;
|
||||
}
|
||||
|
||||
###################################################################################################
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ $().ready(function(){
|
|||
echo "\tflag.needAuth = true;\n";
|
||||
if(is_logged()) echo "\tflag.isLogged = true;\n";
|
||||
}
|
||||
if(Config::get('autotag')) echo "\tflag.autoTag = true;\n";
|
||||
echo "\tloadLists(1, 1);\n";
|
||||
?>
|
||||
$("#duedate").datepicker({dateFormat: '<?php echo datepickerformat(); ?>', firstDay: <?php echo Config::get('firstdayofweek'); ?>,
|
||||
|
|
@ -65,6 +66,9 @@ $().ready(function(){
|
|||
mytinytodo.addAction('listRenamed', tplSingleTabRenamed);
|
||||
mytinytodo.addAction('listAdded', tplSingleTabAdded);
|
||||
<?php endif; ?>
|
||||
<?php if(!isset($_GET['singletab']) && !isset($_GET['pda'])): ?>
|
||||
$("#lists ul").sortable({delay:150, update:listOrderChanged, items:'> :not(.mtt-tabs-button)'});
|
||||
<?php endif; ?>
|
||||
|
||||
});
|
||||
$().ajaxSend( function(r,s) {$("#loading").show();} );
|
||||
|
|
|
|||
Loading…
Reference in a new issue