diff --git a/plugins/libkolab/skins/elastic/include/tasklist.less b/plugins/libkolab/skins/elastic/include/tasklist.less index 06688aa5..781bd248 100644 --- a/plugins/libkolab/skins/elastic/include/tasklist.less +++ b/plugins/libkolab/skins/elastic/include/tasklist.less @@ -337,7 +337,7 @@ html.touch #tasklist { .description { display: block; - white-space: pre; + white-space: pre-wrap; } .title { diff --git a/plugins/libkolab/skins/elastic/libkolab.less b/plugins/libkolab/skins/elastic/libkolab.less index d6f89b7b..036f8be0 100644 --- a/plugins/libkolab/skins/elastic/libkolab.less +++ b/plugins/libkolab/skins/elastic/libkolab.less @@ -390,8 +390,23 @@ button.btn.print:before { padding: .5em 1em; background-color: @color-black-shade-bg; + button { + margin-right: 1rem; + } + .prop { margin-left: .5rem; + display: inline-block; + vertical-align: middle; + + label { + margin: 0; + } + + label:before { + line-height: 1.25; + margin-right: .25rem; + } } @media print { diff --git a/plugins/tasklist/localization/en_US.inc b/plugins/tasklist/localization/en_US.inc index b878f10b..8c7769b6 100644 --- a/plugins/tasklist/localization/en_US.inc +++ b/plugins/tasklist/localization/en_US.inc @@ -102,6 +102,7 @@ $labels['import'] = 'Import'; $labels['importtasks'] = 'Import Tasks'; $labels['viewactions'] = 'View actions'; $labels['focusview'] = 'View only this list'; +$labels['activate'] = 'Activate'; // date words $labels['on'] = 'on'; diff --git a/plugins/tasklist/skins/elastic/templates/print.html b/plugins/tasklist/skins/elastic/templates/print.html index 8d0c1958..f9ec3190 100644 --- a/plugins/tasklist/skins/elastic/templates/print.html +++ b/plugins/tasklist/skins/elastic/templates/print.html @@ -3,7 +3,7 @@ diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js index 343c5695..d50c0c38 100644 --- a/plugins/tasklist/tasklist.js +++ b/plugins/tasklist/tasklist.js @@ -1685,7 +1685,7 @@ function rcube_tasklist_ui(settings) if (!task_draghelper) task_draghelper = $('
'); - var title = $(e.target).parents('li').first().find('.title').text(); + var title = $(e.target).parents('li').first().find('.title:first').text(); task_draghelper.html(Q(title) || '✔'); @@ -2573,7 +2573,7 @@ function rcube_tasklist_ui(settings) // activate the first tab $('#taskedit:not([data-notabs])').tabs('option', 'active', 0); // Larry - if (elastic && $.tab) + if ($('#taskedit').data('notabs')) $('#taskedit li.nav-item:first-child a').tab('show'); // Elastic // define dialog buttons @@ -2722,12 +2722,12 @@ function rcube_tasklist_ui(settings) me.dialog_resize($dialog.get(0), $dialog.height(), 580); } - title.select(); - // Elastic editform.removeClass('hidden').parents('.watermark').addClass('formcontainer'); $('#taskedit').parent().trigger('loaded'); + title.select(); + // show nav buttons on mobile (elastic) $('.content-frame-navigation > .buttons > :not(.disabled)').show(); } diff --git a/plugins/tasklist/tasklist_ui.php b/plugins/tasklist/tasklist_ui.php index 6423c6e6..8554d271 100644 --- a/plugins/tasklist/tasklist_ui.php +++ b/plugins/tasklist/tasklist_ui.php @@ -253,8 +253,8 @@ class tasklist_ui } $classes = array('tasklist'); - $title = $prop['title'] ?: ($prop['name'] != $prop['listname'] || strlen($prop['name']) > 25 ? - html_entity_decode($prop['name'], ENT_COMPAT, RCUBE_CHARSET) : ''); + $title = $prop['title'] ?: ($prop['name'] != $prop['listname'] || strlen($prop['name']) > 25 ? + html_entity_decode($prop['name'], ENT_COMPAT, RCUBE_CHARSET) : ''); if ($prop['virtual']) $classes[] = 'virtual'; @@ -267,15 +267,22 @@ class tasklist_ui if (!$activeonly || $prop['active']) { $label_id = 'tl:' . $id; + $chbox = html::tag('input', array( + 'type' => 'checkbox', + 'name' => '_list[]', + 'value' => $id, + 'checked' => $prop['active'], + 'title' => $this->plugin->gettext('activate'), + 'aria-labelledby' => $label_id + )); + return html::div(join(' ', $classes), html::a(array('class' => 'listname', 'title' => $title, 'href' => '#', 'id' => $label_id), $prop['listname'] ?: $prop['name']) . - ($prop['virtual'] ? '' : - html::tag('input', array('type' => 'checkbox', 'name' => '_list[]', 'value' => $id, 'checked' => $prop['active'], 'aria-labelledby' => $label_id)) . - html::span('actions', - ($prop['removable'] ? html::a(array('href' => '#', 'class' => 'remove', 'title' => $this->plugin->gettext('removelist')), ' ') : '') . - html::a(array('href' => '#', 'class' => 'quickview', 'title' => $this->plugin->gettext('focusview'), 'role' => 'checkbox', 'aria-checked' => 'false'), ' ') . - (isset($prop['subscribed']) ? html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->plugin->gettext('tasklistsubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : '') - ) + ($prop['virtual'] ? '' : $chbox . html::span('actions', + ($prop['removable'] ? html::a(array('href' => '#', 'class' => 'remove', 'title' => $this->plugin->gettext('removelist')), ' ') : '') + . html::a(array('href' => '#', 'class' => 'quickview', 'title' => $this->plugin->gettext('focusview'), 'role' => 'checkbox', 'aria-checked' => 'false'), ' ') + . (isset($prop['subscribed']) ? html::a(array('href' => '#', 'class' => 'subscribed', 'title' => $this->plugin->gettext('tasklistsubscribe'), 'role' => 'checkbox', 'aria-checked' => $prop['subscribed'] ? 'true' : 'false'), ' ') : '') + ) ) ); }