plugins/tasklist

Thomas Brüderli bruederli at kolabsys.com
Thu Oct 18 12:23:42 CEST 2012


 plugins/tasklist/skins/larry/iehacks.css             |   90 +++++++++++++++++++
 plugins/tasklist/skins/larry/sprites.png             |binary
 plugins/tasklist/skins/larry/tasklist.css            |   37 +++++++
 plugins/tasklist/skins/larry/templates/mainview.html |    1 
 plugins/tasklist/tasklist.js                         |   24 ++---
 plugins/tasklist/tasklist_ui.php                     |    2 
 6 files changed, 142 insertions(+), 12 deletions(-)

New commits:
commit e059785d00bda35e0e74a7eeff7675a7f43eac90
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Thu Oct 18 12:23:17 2012 +0200

    Some tweaks to make tasklist work in IE<9

diff --git a/plugins/tasklist/skins/larry/iehacks.css b/plugins/tasklist/skins/larry/iehacks.css
new file mode 100644
index 0000000..9b51999
--- /dev/null
+++ b/plugins/tasklist/skins/larry/iehacks.css
@@ -0,0 +1,90 @@
+/**
+ * Roundcube Taklist plugin CSS hacks for IE < 9
+ *
+ * Copyright (c) 2012, Kolab Systems AG <contact at kolabsys.com>
+ *
+ * The contents are subject to the Creative Commons Attribution-ShareAlike
+ * License. It is allowed to copy, distribute, transmit and to adapt the work
+ * by keeping credits to the original autors in the README file.
+ * See http://creativecommons.org/licenses/by-sa/3.0/ for details.
+ *
+ * $Id$
+ */
+
+#tasksview {
+	background: transparent;
+	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33ffffff,endColorstr=#33ffffff);
+	zoom: 1;
+}
+
+#tasksview .buttonbar {
+	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dfdfdf', GradientType=0);
+}
+
+html.ie #taskselector li .count:after {
+	bottom: -4px;
+}
+
+#thelist .taskitem.dragging .taskhead {
+	filter: alpha(opacity=50);
+}
+
+#thelist .taskhead.complete {
+	filter: alpha(opacity=60);
+}
+
+#thelist .taskhead {
+	filter: progid:DXImageTransform.Microsoft.Shadow(color=#33666666,direction=180,strength=2);
+}
+
+/***  Special hacks for IE7 only  ***/
+
+html.ie7 #taskselector li .count {
+	position: relative;
+	top: 0px;
+	left: 5px;
+}
+
+html.ie7 #taskselector li.selected .count {
+	background: #d9ecf4;
+	color: #004458;
+}
+
+html.ie7 #taskselector li.selected.overdue .count {
+	background: #ff3800;
+	color: #fff;
+}
+
+html.ie7 #tagslist li,
+html.ie7 #taskselector li {
+	float: left;
+}
+
+html.ie7 .taskitem {
+
+}
+
+html.ie7 .taskhead .title {
+	position: relative;
+	top: -3px;
+}
+
+html.ie7 .taskitem .childtoggle {
+	display: block;
+	/* workaround for text-indent which also offsets the background image */
+	text-indent: 0;
+	font-size: 0;
+	line-height: 0;
+	text-align: right;
+	text-decoration: none;
+}
+
+html.ie7 .taskhead .tags {
+	height: 18px;
+}
+
+html.ie7 .taskhead .tags .tag {
+	display: inline-block;
+	padding-bottom: 2px;
+}
+
diff --git a/plugins/tasklist/skins/larry/sprites.png b/plugins/tasklist/skins/larry/sprites.png
index 8d82f77..5224f6f 100644
Binary files a/plugins/tasklist/skins/larry/sprites.png and b/plugins/tasklist/skins/larry/sprites.png differ
diff --git a/plugins/tasklist/skins/larry/tasklist.css b/plugins/tasklist/skins/larry/tasklist.css
index dda3896..747d367 100644
--- a/plugins/tasklist/skins/larry/tasklist.css
+++ b/plugins/tasklist/skins/larry/tasklist.css
@@ -124,6 +124,7 @@ body.attachmentwin #topnav .topright {
 	border-color: #003645;
 	border-radius: 9px;
 	text-shadow: none;
+	outline: none;
 }
 
 #taskselector li .count {
@@ -373,6 +374,16 @@ body.attachmentwin #topnav .topright {
 	font-size: 10px;
 	color: #727272;
 	cursor: pointer;
+	
+	width: 14px;
+	height: 14px;
+	background: url(sprites.png) -2px -80px no-repeat;
+	text-indent: -1000px;
+	overflow: hidden;
+}
+
+.taskitem .childtoggle.collapsed {
+	background-position: -18px -81px;
 }
 
 .taskhead {
@@ -478,6 +489,7 @@ body.attachmentwin #topnav .topright {
 	outline: none;
 	text-align: right;
 	width: 6em;
+	font-size: 11px;
 }
 
 .taskhead .actions,
@@ -556,7 +568,7 @@ ul.toolbarmenu li span.delete {
 	font-size: 20px;
 	color: #ccc;
 	opacity: 0.92;
-	filter: alpha(opacity=92);
+	filter: alpha(opacity=90);
 	text-shadow: 0px 1px 1px #333;
 }
 
@@ -803,3 +815,26 @@ label.block {
 	background: url(sprites.png) -2px -122px no-repeat;
 	cursor: pointer;
 }
+
+
+/** Special hacks for IE7 **/
+/** They need to be in this file to also affect the task-create dialog embedded in mail view **/
+
+html.ie7 #taskedit-completeness-slider {
+	display: inline;
+}
+
+html.ie7 .form-section span.tag-element,
+html.ie7 .tagedit-list li.tagedit-listelement-old {
+	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#edf6fa', endColorstr='#d6e9f3', GradientType=0);
+}
+
+html.ie7 .tagedit-list li.tagedit-listelement span {
+	position: relative;
+	top: -3px;
+}
+
+html.ie7 .tagedit-list li.tagedit-listelement-old a.tagedit-close {
+	left: 5px;
+}
+
diff --git a/plugins/tasklist/skins/larry/templates/mainview.html b/plugins/tasklist/skins/larry/templates/mainview.html
index fbc7d5c..4b8b49a 100644
--- a/plugins/tasklist/skins/larry/templates/mainview.html
+++ b/plugins/tasklist/skins/larry/templates/mainview.html
@@ -3,6 +3,7 @@
 <head>
 <title><roundcube:object name="pagetitle" /></title>
 <roundcube:include file="/includes/links.html" />
+<!--[if lte IE 8]><link rel="stylesheet" type="text/css" href="./plugins/tasklist/skins/larry/iehacks.css" /><![endif]-->
 </head>
 <body class="tasklistview noscroll">
 
diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js
index 0b39494..aaa017d 100644
--- a/plugins/tasklist/tasklist.js
+++ b/plugins/tasklist/tasklist.js
@@ -158,7 +158,7 @@ function rcube_tasklist_ui(settings)
             // clear form
             this.reset();
             return false;
-        });
+        }).find('input[type=text]').placeholder(rcmail.gettext('createnewtask','tasklist'));
 
         // click-handler on tags list
         $(rcmail.gui_objects.tagslist).click(function(e){
@@ -169,7 +169,7 @@ function rcube_tasklist_ui(settings)
                 tag = item.data('value');
 
             // reset selection on regular clicks
-            var index = tagsfilter.indexOf(tag);
+            var index = $.inArray(tag, tagsfilter);
             var shift = e.shiftKey || e.ctrlKey || e.metaKey;
 
             if (!shift) {
@@ -193,6 +193,10 @@ function rcube_tasklist_ui(settings)
 
             list_tasks();
 
+            // clear text selection in IE after shift+click
+            if (shift && document.selection)
+              document.selection.empty();
+
             e.preventDefault();
             return false;
         })
@@ -254,7 +258,7 @@ function rcube_tasklist_ui(settings)
                             }
                             input.datepicker('destroy').remove();
                             link.html(dateText || rcmail.gettext('nodate','tasklist'));
-                        },
+                        }
                       }, extended_datepicker_settings)
                     )
                     .datepicker('setDate', rec.date)
@@ -320,7 +324,7 @@ function rcube_tasklist_ui(settings)
                             $(input).datepicker('setDate', null).datepicker('hide');
                         });
                 }, 1);
-            },
+            }
         }, datepicker_settings);
     }
 
@@ -490,7 +494,7 @@ function rcube_tasklist_ui(settings)
         // find new tags
         var newtags = [];
         for (var i=0; i < taglist.length; i++) {
-            if (tags.indexOf(taglist[i]) < 0)
+            if ($.inArray(taglist[i], tags) < 0)
                 newtags.push(taglist[i]);
         }
         tags = tags.concat(newtags);
@@ -540,7 +544,7 @@ function rcube_tasklist_ui(settings)
 
         var id = rec.id,
             oldid = rec.tempid || id,
-            oldindex = listindex.indexOf(oldid),
+            oldindex = $.inArray(oldid, listindex),
             list = me.tasklists[rec.list];
 
         if (oldindex >= 0)
@@ -551,7 +555,7 @@ function rcube_tasklist_ui(settings)
         listdata[id] = rec;
 
         // register a forward-pointer to child tasks
-        if (rec.parent_id && listdata[rec.parent_id] && listdata[rec.parent_id].children && listdata[rec.parent_id].children.indexOf(id) >= 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);
 
         if (list.active)
@@ -676,7 +680,7 @@ function rcube_tasklist_ui(settings)
 
         // remove from list index
         var oldlist = listindex.join('%%%');
-        var oldindex = listindex.indexOf(rec.id);
+        var oldindex = $.inArray(rec.id, listindex);
         if (oldindex >= 0) {
             slice = listindex.slice(0,oldindex);
             listindex = slice.concat(listindex.slice(oldindex+1));
@@ -704,7 +708,7 @@ function rcube_tasklist_ui(settings)
             }
         });
 
-        index = listindex.indexOf(next_id);
+        index = $.inArray(next_id, listindex);
 
         if (next_li) {
             if (animated) insert_animated(li, null, next_li);
@@ -1297,7 +1301,7 @@ function rcube_tasklist_ui(settings)
         if (match && tagsfilter.length) {
             match = rec.tags && rec.tags.length;
             for (var i=0; match && i < tagsfilter.length; i++) {
-                if (rec.tags.indexOf(tagsfilter[i]) < 0)
+                if ($.inArray(tagsfilter[i], rec.tags) < 0)
                     match = false;
             }
         }
diff --git a/plugins/tasklist/tasklist_ui.php b/plugins/tasklist/tasklist_ui.php
index cd91c76..0a9f3f1 100644
--- a/plugins/tasklist/tasklist_ui.php
+++ b/plugins/tasklist/tasklist_ui.php
@@ -181,7 +181,7 @@ class tasklist_ui
     {
         $attrib += array('action' => $this->rc->url('add'), 'method' => 'post', 'id' => 'quickaddform');
 
-        $input = new html_inputfield(array('name' => 'text', 'id' => 'quickaddinput', 'placeholder' => $this->plugin->gettext('createnewtask')));
+        $input = new html_inputfield(array('name' => 'text', 'id' => 'quickaddinput'));
         $button = html::tag('input', array('type' => 'submit', 'value' => '+', 'class' => 'button mainaction'));
 
         $this->rc->output->add_gui_object('quickaddform', $attrib['id']);





More information about the commits mailing list