diff --git a/src/ajax.js b/src/ajax.js
index 8bfce04..12677e2 100644
--- a/src/ajax.js
+++ b/src/ajax.js
@@ -23,6 +23,7 @@ var page = {cur:'', prev:''};
var mytinytodo = {
actions: {},
+ menus: {},
addAction: function(action, proc)
{
@@ -910,7 +911,7 @@ function loadLists(onInit, updAccess)
$('#mylistscontainer .mtt-need-list').addClass('mtt-disabled');
$('#tasklist').html('');
}
- ti += '
';
+ ti += '';
$('#lists>ul').html(ti);
$('#lists').show();
mytinytodo.doAction('listsLoaded');
@@ -1215,14 +1216,17 @@ function mttMenu(container, options)
this.close();
if(this.caller && this.caller == caller) return;
}
+ $(document).triggerHandler('click.mttmenuclose'); //close any other open menu
this.caller = caller;
$caller = $(caller);
var offset = $caller.offset();
var x2 = $(window).width() + $(document).scrollLeft() - this.container.outerWidth(true) - 1;
var x = offset.left < x2 ? offset.left : x2;
+ if(x<0) x=0;
var y = offset.top+caller.offsetHeight-1;
if(y + this.container.outerHeight(true) > $(window).height() + $(document).scrollTop()) y = offset.top - this.container.outerHeight();
- this.container.css({ position: 'absolute', top: y, left: x /*, 'min-width': $caller.width()*/ }).show();
+ if(y<0) y=0;
+ this.container.css({ position: 'absolute', top: y, left: x, width:this.container.width() /*, 'min-width': $caller.width()*/ }).show();
var menu = this;
$(document).bind('click.mttmenuclose', function(e){ menu.close(e) });
this.menuOpen = true;
@@ -1320,3 +1324,24 @@ function tz()
{
return -1 * (new Date()).getTimezoneOffset();
}
+
+function listMenu(el)
+{
+ if(!mytinytodo.menus.listMenu) mytinytodo.menus.listMenu = new mttMenu('mylistscontainer', {onclick:listMenuClick});
+ mytinytodo.menus.listMenu.show(el);
+}
+
+function listMenuClick(el, menu)
+{
+ if(!el.id) return;
+ switch(el.id) {
+ case 'btnAddList': addList(); break;
+ case 'btnRenameList': renameCurList(); break;
+ case 'btnDeleteList': deleteCurList(); break;
+ case 'btnPublish': publishCurList(); break;
+ case 'btnShowCompleted': showCompletedToggle(); break;
+ case 'sortByHand': setSort(0); break;
+ case 'sortByPrio': setSort(1); break;
+ case 'sortByDueDate': setSort(2); break;
+ }
+}
diff --git a/src/themes/default/index.php b/src/themes/default/index.php
index 4b8f2fa..a8cd259 100644
--- a/src/themes/default/index.php
+++ b/src/themes/default/index.php
@@ -192,15 +192,15 @@ $().ready(function(){