+ ability to use single tab for all lists

This commit is contained in:
Max Pozdeev 2010-01-22 15:57:37 +03:00
parent ca5d0a80f9
commit 2fa4b6752b
5 changed files with 73 additions and 31 deletions

View file

@ -810,10 +810,10 @@ function editFormResize(startstop, event)
else $('#page_taskedit textarea').height(f.height() - tmp.editformdiff);
}
function mttTabSelected(el, indx)
function mttTabSelected(id, indx)
{
$(el.parentNode.parentNode).children('.mtt-tabs-selected').removeClass('mtt-tabs-selected');
$(el.parentNode).addClass('mtt-tabs-selected');
$('#lists .mtt-tabs-selected').removeClass('mtt-tabs-selected');
$('#lists li.list-id-'+tabLists[indx].id).addClass('mtt-tabs-selected');
if(!tabLists[indx]) return;
if(indx != curList.i) {
$('#tasklist').html('');
@ -843,7 +843,7 @@ function btnMenu(el)
if(w.css('display') == 'none')
{
oBtnMenu.h = [];
$(w).find('li').each( function(i,o){
$(w).find('li').each( function(i,o){
if(o.onclick) {
oBtnMenu.h[i] = o.onclick;
$(o).bind("click2", o.onclick);
@ -853,7 +853,7 @@ function btnMenu(el)
}
} );
var offset = $(el).offset();
w.css({ position: 'absolute', top: offset.top+el.offsetHeight-1, left: offset.left , 'min-width': $(el).width() }).show();
w.css({ position: 'absolute', top: offset.top+el.offsetHeight-1, left: offset.left , 'min-width': $(el).width(), 'width':w.width() }).show();
$(document).bind("click", btnMenuClose);
}
else {
@ -910,7 +910,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':'')+'"><a href="#list'+item.id+'" onClick="mttTabSelected(this,'+i+');return false;" title="'+item.name+'"><span>'+item.name+'</span></a></li>';
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>';
});
if(!curList) {
$('#toolbar').children().removeClass('invisible');
@ -935,8 +935,8 @@ function loadLists(onInit, updAccess)
ti += '<li class="mtt-tabs-button menu-owner"><a href="#" id="mylists" onClick="btnMenu(this);return false;"><span></span></a></li>';
$('#lists>ul').html(ti);
$('#lists').show();
if(!flag.needAuth || flag.isLogged || curList) $('#page_tasks').show();
mytinytodo.doAction('listsLoaded');
if(!flag.needAuth || flag.isLogged || curList) $('#page_tasks').show();
});
$('#page_tasks').hide();
if(updAccess) updateAccessStatus();
@ -956,7 +956,7 @@ function addList()
item.i = i;
tabLists[i] = item;
if(i > 0) {
$('#lists>ul>li.mtt-tabs-button').before('<li><a href="#list'+item.id+'" onClick="mttTabSelected(this,'+i+');return false;" title="'+item.name+'"><span>'+item.name+'</span></a></li>') ;
$('#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>') ;
mytinytodo.doAction('listAdded', {i:i, list:item});
}
else loadLists();
@ -1315,3 +1315,30 @@ function moveTaskToList(taskId, listId)
$("#edittags").flushCache();
flag.tagsChanged = true;
}
function cmenuListsLoaded(opts)
{
if(cmenu) cmenu.destroy();
cmenu = null;
var s = '';
for(var i in tabLists) {
s += '<li id="cmenu_list:'+tabLists[i].id+'">'+tabLists[i].name+'</li>';
}
$('#listsmenucontainer ul').html(s);
}
function cmenuListAdded(opts)
{
if(cmenu) cmenu.destroy();
cmenu = null;
$('#listsmenucontainer ul').append('<li id="cmenu_list:'+opts.list.id+'">'+opts.list.name+'</li>');
}
function cmenuListRenamed(opts)
{
$('#cmenu_list\\:'+opts.list.id).text(opts.list.name);
}
mytinytodo.addAction('listsLoaded', cmenuListsLoaded);
mytinytodo.addAction('listAdded', cmenuListAdded);
mytinytodo.addAction('listRenamed', cmenuListRenamed);

View file

@ -3,7 +3,7 @@
/*
myTinyTodo language pack
Language: English
Translated: English
Original name: English
Author: Max Pozdeev
Author Url: http://www.mytinytodo.net
AppVersion: v1.3.2

View file

@ -1,29 +1,34 @@
/* Default template */
mytinytodo.addAction('listsLoaded', listsLoaded);
mytinytodo.addAction('listAdded', listAdded);
mytinytodo.addAction('listRenamed', listRenamed);
function listsLoaded(opts)
function tplSingleTabLoaded()
{
if(cmenu) cmenu.destroy();
cmenu = null;
var s = '';
for(var i in tabLists) {
s += '<li id="cmenu_list:'+tabLists[i].id+'">'+tabLists[i].name+'</li>';
var $lc = $('#mylistscontainer');
if($lc.find('.mtt-btnmenu-delimiter').length == 0) {
$lc.find('ul').append('<li class="mtt-btnmenu-delimiter"></li>');
} else {
$lc.find('.list-ref').remove();
}
$('#listsmenucontainer ul').html(s);
var ti = '';
for(var i in tabLists) {
ti += '<li class="list-ref '+(i==0?'mtt-item-checked':'')+' list-id-'+tabLists[i].id+'" onClick="tplTabMenuSelect('+tabLists[i].id+','+i+');"><div class="menu-icon"></div><a href="#list'+tabLists[i].id+'" onClick="return false">'+tabLists[i].name+'</a></li>';
}
$lc.find('.mtt-btnmenu-delimiter').after(ti);
}
function listAdded(opts)
function tplSingleTabRenamed(opts)
{
if(cmenu) cmenu.destroy();
cmenu = null;
$('#listsmenucontainer ul').append('<li id="cmenu_list:'+opts.list.id+'">'+opts.list.name+'</li>');
$('#mylistscontainer li.list-id-'+opts.list.id).find('a').html(opts.list.name);
}
function listRenamed(opts)
function tplSingleTabAdded(opts)
{
$('#cmenu_list\\:'+opts.list.id).text(opts.list.name);
$('#mylistscontainer ul').append('<li class="list-ref list-id-'+opts.list.id+'" onClick="tplTabMenuSelect('+opts.list.id+','+opts.list.i+');"><div class="menu-icon"></div><a href="#list'+opts.list.id+'" onClick="return false">'+opts.list.name+'</a></li>');
}
function tplTabMenuSelect(id, indx)
{
mttTabSelected(id, indx);
$('#mylistscontainer li.list-ref').removeClass('mtt-item-checked');
$('#mylistscontainer li.list-id-'+id).addClass('mtt-item-checked');
return false;
}

View file

@ -60,6 +60,11 @@ $().ready(function(){
<?php else: ?>
flag.pda = true;
<?php endif; ?>
<?php if(isset($_GET['singletab'])): ?>
mytinytodo.addAction('listsLoaded', tplSingleTabLoaded);
mytinytodo.addAction('listRenamed', tplSingleTabRenamed);
mytinytodo.addAction('listAdded', tplSingleTabAdded);
<?php endif; ?>
});
$().ajaxSend( function(r,s) {$("#loading").show();} );
@ -94,7 +99,7 @@ $().ajaxStop( function(r,s) {$("#loading").fadeOut();} );
<div id="page_tasks" style="display:none">
<div id="lists">
<ul class="mtt-tabs"></ul>
<ul class="mtt-tabs <?php if(isset($_GET['singletab'])) echo "mtt-tabs-only-one"; ?>"></ul>
</div>
<div id="toolbar" class="mtt-htabs">
@ -200,6 +205,7 @@ $().ajaxStop( function(r,s) {$("#loading").fadeOut();} );
<li class="mtt-need-list" onClick="renameCurList()"><?php _e('list_rename');?></li>
<li class="mtt-need-list" onClick="deleteCurList()"><?php _e('list_delete');?></li>
<li class="mtt-need-list" id="btnPublish" onClick="publishCurList()"><div class="menu-icon"></div><?php _e('list_publish');?></li>
<!-- <div id="mylistselect" style="width:100%"></div>-->
</ul>
</div>

View file

@ -34,6 +34,8 @@ a { color:#0000ff; }
.mtt-tabs li.mtt-tabs-button a { padding:6px 0px 0px 0px; }
.mtt-tabs li.mtt-tabs-button a span { width:21px; min-width:21px; display:block; background:url(images/arrdown.gif) no-repeat bottom; height:12px; }
.mtt-tabs li.mtt-tabs-button:hover a span { opacity:0.5; }
.mtt-tabs.mtt-tabs-only-one li { display:none; }
.mtt-tabs.mtt-tabs-only-one li.mtt-tabs-selected, .mtt-tabs.mtt-tabs-only-one li.mtt-tabs-button { display:block; }
#page_tasks.readonly li.mtt-tabs-button { display:none; }
*>.mtt-tabs li { width:auto; height:auto; }
*>.mtt-tabs a span { height:auto; width:auto; }
@ -192,15 +194,17 @@ li.task-completed .task-note-block .task-note { text-decoration:line-through; }
.mtt-btnmenu-container {
overflow:hidden; z-index:100;
background-color:#f9f9f9; border:1px solid #cccccc; padding:3px;
background-color:#f9f9f9; border:1px solid #cccccc; padding:2px;
-moz-box-shadow:1px 2px 5px rgba(0,0,0,0.5); -webkit-box-shadow:1px 2px 5px rgba(0,0,0,0.5); margin:0px 7px 7px 0px;
}
.mtt-btnmenu-container ul { list-style: none; padding:0; margin:0; }
.mtt-btnmenu-container li { margin:1px 0px; padding:2px; cursor:pointer; color:#000; white-space:nowrap; }
.mtt-btnmenu-container li { margin:1px 0px; padding:2px 3px; cursor:pointer; color:#000; white-space:nowrap; }
.mtt-btnmenu-container li:hover { background-color:#316AC5; color:white; }
.mtt-btnmenu-container li.mtt-need-list.mtt-disabled { color:#ACA899; }
.mtt-btnmenu-delimiter { height:0px; border-top:1px solid #cccccc; margin:2px -1px 2px -1px }
.mtt-btnmenu-container a { display:block; text-decoration:none; outline:none; color:#000; }
.mtt-btnmenu-container li:hover a { color:white; }
.mtt-btnmenu-container.mtt-menu-has-images li { padding-left:18px; }
.mtt-btnmenu-container li.mtt-btnmenu-delimiter { height:0px; line-height:0; border-bottom:1px solid #cccccc; margin:2px -1px; padding:0px; font-size:0px; }
li.mtt-item-checked .menu-icon { float:left; width:16px; height:16px; margin-left:-18px; background:url(images/icons.gif) -16px -16px; }
.mtt-btnmenu-container.mtt-menu-has-submenu li { padding-right:18px; }
li.mtt-menu-indicator .submenu-icon {