diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js
index acc8284f..3732bbd0 100644
--- a/plugins/tasklist/tasklist.js
+++ b/plugins/tasklist/tasklist.js
@@ -2271,7 +2271,7 @@ function rcube_tasklist_ui(settings)
{
$('#taskshow:ui-dialog').dialog('close');
- var rec = listdata[id] || presets,
+ var selected_list, rec = listdata[id] || presets,
$dialog = $('
'),
editform = $('#taskedit'),
list = rec.list && me.tasklists[rec.list] ? me.tasklists[rec.list] :
@@ -2300,7 +2300,7 @@ function rcube_tasklist_ui(settings)
var complete = $('#taskedit-completeness').val((rec.complete || 0) * 100);
completeness_slider.slider('value', complete.val());
var taskstatus = $('#taskedit-status').val(rec.status || '');
- var tasklist = $('#taskedit-tasklist').val(rec.list || me.selected_list).prop('disabled', rec.parent_id ? true : false);
+ var tasklist = $('#taskedit-tasklist').prop('disabled', rec.parent_id ? true : false);
var notify = $('#edit-attendees-donotify').get(0);
var invite = $('#edit-attendees-invite').get(0);
var comment = $('#edit-attendees-comment');
@@ -2310,10 +2310,16 @@ function rcube_tasklist_ui(settings)
// set tasklist selection according to permissions
tasklist.find('option').each(function(i, opt) {
- var l = me.tasklists[opt.value] || {};
- $(opt).prop('disabled', !(l.editable || (action == 'new' && has_permission(l, 'i'))));
+ var l = me.tasklists[opt.value] || {},
+ writable = l.editable || (action == 'new' && has_permission(l, 'i'));
+ $(opt).prop('disabled', !writable);
+
+ if (!selected_list && writable)
+ selected_list = opt.value;
});
+ tasklist.val(rec.list || me.selected_list || selected_list);
+
// tag-edit line
var tagline = $(rcmail.gui_objects.edittagline).empty();
$.each(typeof rec.tags == 'object' && rec.tags.length ? rec.tags : [''], function(i,val){
diff --git a/plugins/tasklist/tasklist.php b/plugins/tasklist/tasklist.php
index e0c167f7..e904ee90 100644
--- a/plugins/tasklist/tasklist.php
+++ b/plugins/tasklist/tasklist.php
@@ -1418,13 +1418,16 @@ class tasklist extends rcube_plugin
$texts['tasklist.newtask'] = $this->gettext('createfrommail');
+
+ $this->ui->init_templates();
+ $this->ui->tasklists();
+
// collect env variables
$env = array(
- 'tasklists' => array(),
+ 'tasklists' => $this->rc->output->get_env('tasklists'),
'tasklist_settings' => $this->ui->load_settings(),
);
- $this->ui->init_templates();
echo $this->api->output->parse('tasklist.taskedit', false, false);
$script_add = '';