3 commits - plugins/libcalendaring plugins/tasklist

Thomas Brüderli bruederli at kolabsys.com
Fri Oct 4 09:37:47 CEST 2013


 plugins/libcalendaring/libcalendaring.js |    2 +-
 plugins/tasklist/tasklist.js             |   26 ++++++++++++++++++++------
 2 files changed, 21 insertions(+), 7 deletions(-)

New commits:
commit ed6fd93ac5f097a272b0169fb14d0d6dff33308e
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Fri Oct 4 09:37:32 2013 +0200

    Make URLs in task titles clickable (#2289)

diff --git a/plugins/libcalendaring/libcalendaring.js b/plugins/libcalendaring/libcalendaring.js
index 93e605a..73d1c1e 100644
--- a/plugins/libcalendaring/libcalendaring.js
+++ b/plugins/libcalendaring/libcalendaring.js
@@ -281,7 +281,7 @@ function rcube_libcalendaring(settings)
         var mailto_pattern = new RegExp('([^\\s\\n\\(\\);]+@'+utf_domain+')', 'ig');
 
         return html
-            .replace(link_pattern, '<a href="$1$2" target="_blank">$1$2</a>')
+            .replace(link_pattern, '<a href="$1$2" class="extlink" target="_blank">$1$2</a>')
             .replace(mailto_pattern, '<a href="mailto:$1">$1</a>')
             .replace(/(mailto:)([^"]+)"/g, '$1$2" onclick="rcmail.command(\'compose\', \'$2\');return false"')
             .replace(/\n/g, "<br/>");
diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js
index 313e50a..645a9ad 100644
--- a/plugins/tasklist/tasklist.js
+++ b/plugins/tasklist/tasklist.js
@@ -297,7 +297,10 @@ function rcube_tasklist_ui(settings)
                     }
                     e.bubble = false;
                     break;
-                
+
+                case 'extlink':
+                    return true;
+
                 default:
                     if (e.target.nodeName != 'INPUT')
                         task_show_dialog(id);
@@ -642,7 +645,7 @@ function rcube_tasklist_ui(settings)
             '<div class="progressbar"><div class="progressvalue" style="width:' + (rec.complete * 100) + '%"></div></div>' +
             '<input type="checkbox" name="completed[]" value="1" class="complete" ' + (rec.complete == 1.0 ? 'checked="checked" ' : '') + '/>' + 
             '<span class="flagged"></span>' +
-            '<span class="title">' + Q(rec.title) + '</span>' +
+            '<span class="title">' + text2html(Q(rec.title)) + '</span>' +
             '<span class="tags">' + tags_html + '</span>' +
             '<span class="date">' + Q(rec.date || rcmail.gettext('nodate','tasklist')) + '</span>' +
             '<a href="#" class="actions">V</a>'
@@ -908,7 +911,7 @@ function rcube_tasklist_ui(settings)
 
         // fill dialog data
         $('#task-parent-title').html(Q(rec.parent_title || '')+' »').css('display', rec.parent_title ? 'block' : 'none');
-        $('#task-title').html(Q(rec.title || ''));
+        $('#task-title').html(text2html(Q(rec.title || '')));
         $('#task-description').html(text2html(rec.description || '', 300, 6))[(rec.description ? 'show' : 'hide')]();
         $('#task-date')[(rec.date ? 'show' : 'hide')]().children('.task-text').html(Q(rec.date || rcmail.gettext('nodate','tasklist')));
         $('#task-time').html(Q(rec.time || ''));


commit 777fb89394a45c08f3f37c4f0462c00c42cd0b2d
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Fri Oct 4 09:31:01 2013 +0200

    Expand/collapse all subtasks when pressing the Shift key while clicking the toggle icon

diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js
index 59bb54c..313e50a 100644
--- a/plugins/tasklist/tasklist.js
+++ b/plugins/tasklist/tasklist.js
@@ -233,6 +233,8 @@ function rcube_tasklist_ui(settings)
                     li.children('.childtasks:first').toggle();
                     $(e.target).toggleClass('collapsed').html(rec.collapsed ? '▶' : '▼');
                     rcmail.http_post('tasks/task', { action:'collapse', t:{ id:rec.id, list:rec.list }, collapsed:rec.collapsed?1:0 });
+                    if (e.shiftKey)  // expand/collapse all childs
+                        li.children('.childtasks:first .childtoggle.'+(rec.collapsed?'expanded':'collapsed')).click();
                     break;
 
                 case 'complete':


commit 5ef856ad6bc04f42b990952d99c8eb005c40734a
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Thu Oct 3 20:51:58 2013 +0200

    Fix parent-child links when re-arrangning tasks

diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js
index 01c54b8..59bb54c 100644
--- a/plugins/tasklist/tasklist.js
+++ b/plugins/tasklist/tasklist.js
@@ -560,7 +560,7 @@ function rcube_tasklist_ui(settings)
             oldid = rec.tempid || id,
             oldrec = listdata[oldid],
             oldindex = $.inArray(oldid, listindex),
-            oldparent = oldrec && (oldrec._old_parent_id || oldrec.parent_id),
+            oldparent = oldrec ? (oldrec._old_parent_id || oldrec.parent_id) : null,
             list = me.tasklists[rec.list];
 
         if (oldindex >= 0)
@@ -575,14 +575,23 @@ function rcube_tasklist_ui(settings)
             var oldchilds = listdata[oldparent].children,
                 i = $.inArray(oldid, oldchilds);
             if (i >= 0) {
-                oldchilds = oldchilds.slice(0,i).concat(oldchilds.slice(i+1));
+                listdata[oldparent].children = oldchilds.slice(0,i).concat(oldchilds.slice(i+1));
             }
         }
 
         // register a forward-pointer to child tasks
-        if (rec.parent_id && listdata[rec.parent_id] && listdata[rec.parent_id].children && $.inArray(id, listdata[rec.parent_id].children) >= 0)
+        if (rec.parent_id && listdata[rec.parent_id] && listdata[rec.parent_id].children && $.inArray(id, listdata[rec.parent_id].children) < 0)
             listdata[rec.parent_id].children.push(id);
 
+        // restore pointers to my children
+        if (!listdata[id].children) {
+            listdata[id].children = [];
+            for (var pid in listdata) {
+                if (listdata[pid].parent_id == id)
+                    listdata[id].children.push(pid);
+            }
+        }
+
         if (list.active)
             render_task(rec, oldid);
         else




More information about the commits mailing list