Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F8197664
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
51 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/plugins/tasklist/skins/larry/tasklist.css b/plugins/tasklist/skins/larry/tasklist.css
index 33987f28..79138a69 100644
--- a/plugins/tasklist/skins/larry/tasklist.css
+++ b/plugins/tasklist/skins/larry/tasklist.css
@@ -1,1500 +1,1505 @@
/**
* Roundcube Taklist plugin styles for skin "Larry"
*
* Copyright (C) 2012, Kolab Systems AG <contact@kolabsys.com>
* Screendesign by FLINT / Büro für Gestaltung, bueroflint.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.
*/
#taskbar a.button-tasklist span.button-inner {
background-image: url(buttons.png);
background-position: 0 0;
}
#taskbar a.button-tasklist:hover span.button-inner,
#taskbar a.button-tasklist.button-selected span.button-inner {
background-position: 0 -26px;
}
ul.toolbarmenu li span.icon.taskadd,
#attachmentmenu li a.tasklistlink span.icon.taskadd {
background-image: url(buttons.png);
background-position: -4px -90px;
}
.tasklistview div.uidialog {
display: none;
}
.tasklistview #mainscreen {
min-width: 1000px !important;
min-height: 520px !important;
}
.tasklistview #header {
min-width: 1020px !important;
}
#sidebar {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 240px;
}
.tasklistview #searchmenulink {
width: 15px;
}
#tagsbox {
position: absolute;
top: 42px;
left: 0;
width: 100%;
height: 242px;
}
#tasklistsbox {
position: absolute;
top: 300px;
left: 0;
width: 100%;
bottom: 0px;
}
#tasklistsbox .boxtitle a.iconbutton.search {
position: absolute;
top: 8px;
right: 8px;
width: 16px;
cursor: pointer;
background-position: -2px -317px;
}
#tasklistsbox .listsearchbox {
display: none;
}
#tasklistsbox .listsearchbox.expanded {
display: block;
}
#tasklistsbox .scroller {
top: 34px;
}
#tasklistsbox .listsearchbox.expanded + .scroller {
top: 68px;
}
#taskselector {
margin: -1px 40px 0 0;
padding: 0;
}
#taskselector li {
display: inline-block;
position: relative;
font-size: 90%;
padding-right: 0.3em;
}
.tagcloud li,
#taskselector li a {
display: inline-block;
color: #004458;
min-width: 3.5em;
padding: 0.2em 0.6em 0.2em 0.6em;
text-align: center;
text-decoration: none;
border: 1px solid #eee;
border-color: transparent;
}
.webkit .tagcloud li,
.webkit #taskselector li a {
padding-bottom: 0.25em;
}
#taskselector li:first-child {
border-top: 0;
border-radius: 4px 4px 0 0;
}
#taskselector li:last-child {
border-bottom: 0;
border-radius: 0 0 4px 4px;
}
#taskselector li.overdue a {
color: #b72a2a;
font-weight: bold;
}
#taskselector li.inactive a {
color: #97b3bf;
}
.tagcloud li.selected,
#taskselector li.selected a {
color: #fff;
background: #005d76;
background: -moz-linear-gradient(top, #005d76 0%, #004558 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#005d76), color-stop(100%,#004558));
background: -o-linear-gradient(top, #005d76 0%, #004558 100%);
background: -ms-linear-gradient(top, #005d76 0%, #004558 100%);
background: linear-gradient(top, #005d76 0%, #004558 100%);
box-shadow: inset 0 1px 1px 0 #003645;
-o-box-shadow: inset 0 1px 1px 0 #003645;
-webkit-box-shadow: inset 0 1px 1px 0 #003645;
-moz-box-shadow: inset 0 1px 1px 0 #003645;
border-color: #003645;
border-radius: 10px;
text-shadow: none;
}
#taskselector li .count {
display: none;
position: absolute;
top: -18px;
right: 5px;
min-width: 1.8em;
padding: 2px 4px;
background: #004558;
background: -moz-linear-gradient(top, #005d76 0%, #004558 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#005d76), color-stop(100%,#004558));
background: -o-linear-gradient(top, #005d76 0%, #004558 100%);
background: -ms-linear-gradient(top, #005d76 0%, #004558 100%);
background: linear-gradient(top, #005d76 0%, #004558 100%);
box-shadow: 0 1px 2px 0 rgba(24,24,24,0.6);
color: #fff;
border-radius: 3px;
text-align: center;
font-weight: bold;
font-size: 80%;
text-shadow: none;
}
#taskselector li .count:after {
content: "";
position: absolute;
bottom: -5px;
left: 50%;
margin-left: -5px;
border-style: solid;
border-width: 5px 5px 0;
border-color: #004558 transparent;
/* reduce the damage in FF3.0 */
display: block;
width: 0;
}
#taskselector li.overdue .count {
background: #ff3800;
}
#taskselector li.overdue .count:after {
border-color: #ff3800 transparent;
}
.tagcloud {
padding: 0;
margin: 6px;
list-style: none;
}
.tagcloud li {
display: inline-block;
color: #004458;
padding-right: 0.2em;
margin-right: 0.3em;
margin-bottom: 0.4em;
min-width: 1.2em;
cursor: pointer;
}
.tagcloud li.inactive {
color: #89b3be;
padding-right: 0.6em;
font-size: 80%;
/* display: none; */
}
.tagcloud li .count {
position: relative;
top: -1px;
margin-left: 5px;
padding: 0.15em 0.5em;
font-size: 80%;
font-weight: bold;
color: #59838e;
background: #c7e3ef;
box-shadow: inset 0 1px 1px 0 #b0ccd7;
-o-box-shadow: inset 0 1px 1px 0 #b0ccd7;
-webkit-box-shadow: inset 0 1px 1px 0 #b0ccd7;
-moz-box-shadow: inset 0 1px 1px 0 #b0ccd7;
border-color: #b0ccd7;
border-radius: 8px;
}
.tag-draghelper .tag .count,
.tagcloud li.inactive .count {
display: none;
}
#tasklistsbox .treelist li {
margin: 0;
display: block;
position: relative;
}
#tasklistsbox .treelist li div.tasklist {
margin: 0;
height: 20px;
padding: 6px 8px 2px 6px;
position: relative;
white-space: nowrap;
}
#tasklistsbox .treelist li.virtual > div.tasklist {
height: 14px;
}
#tasklistsbox .treelist ul li > div.tasklist {
margin-left: 16px;
}
#tasklistsbox .treelist ul ul li > div.tasklist {
margin-left: 32px;
}
#tasklistsbox .treelist ul ul ul li > div.tasklist {
margin-left: 48px;
}
#tasklistsbox .treelist li label {
display: block;
}
#tasklistsbox .treelist li span.listname {
display: block;
position: absolute;
top: 7px;
left: 38px;
right: 40px;
cursor: default;
padding: 0px 30px 2px 2px;
color: #004458;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
background: url(sprites.png) right 20px no-repeat;
}
.quickview-active #tasklistsbox .treelist li input,
.quickview-active #tasklistsbox .treelist li span.listname {
opacity: 0.35;
}
.quickview-active #tasklistsbox .treelist div.focusview span.listname {
opacity: 1.0;
}
#tasklistsbox .treelist div span.actions {
display: inline-block;
position: absolute;
top: 2px;
right: 2px;
padding: 5px 20px 0 6px;
min-width: 40px;
height: 19px;
text-align: right;
}
#tasklistsbox .treelist div:hover span.actions {
top: 1px;
right: 1px;
border: 1px solid #c6c6c6;
border-radius: 4px;
background: #f7f7f7;
background: -moz-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e6e6e6));
background: -o-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
background: -ms-linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
background: linear-gradient(top, #f9f9f9 0%, #e6e6e6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e6e6e6', GradientType=0);
}
#tasklistsbox .treelist div a.remove,
#tasklistsbox .treelist div a.quickview,
#tasklistsbox .treelist div a.subscribed {
display: inline-block;
width: 16px;
height: 16px;
padding: 0;
margin-right: 4px;
background: url(sprites.png) -200px 0 no-repeat;
overflow: hidden;
text-indent: -5000px;
cursor: pointer;
}
#tasklistsbox .treelist div a.subscribed {
position: absolute;
top: 5px;
right: 4px;
margin: 0;
}
#tasklistsbox .treelist div a.subscribed:focus,
#tasklistsbox .treelist div:hover a.subscribed {
background-position: -2px -215px;
}
#tasklistsbox .treelist div.subscribed a.subscribed {
background-position: -20px -215px;
}
#tasklistsbox .treelist div a.quickview:focus,
#tasklistsbox .treelist div:hover a.quickview {
background-position: -20px -101px;
background-color: transparent !important;
}
#tasklistsbox .treelist div a.remove:focus,
#tasklistsbox .treelist div:hover a.remove {
background-position: -2px -371px;
background-color: transparent !important;
}
#tasklistsbox .treelist div.focusview a.quickview {
background-position: -2px -101px;
}
#tasklistsbox .searchresults .treelist div a.remove,
#tasklistsbox .searchresults .treelist div a.quickview {
display: none;
}
#tasklistsbox .treelist div a.remove:focus,
#tasklistsbox .treelist div a.quickview:focus,
#tasklistsbox .treelist div a.subscribed:focus {
border-radius: 3px;
outline: 2px solid rgba(30,150,192, 0.5);
}
#tasklistsbox .treelist li.selected > div > span.listname {
font-weight: bold;
}
#tasklistsbox .treelist .readonly > span.listname {
background-position: right -142px;
}
#tasklistsbox .treelist .user > span.listname {
background-position: right -160px;
}
#tasklistsbox .treelist .virtual > span.listname {
color: #aaa;
top: 4px;
left: 20px;
right: 5px;
}
#tasklistsbox .treelist.flat li span.calname {
left: 24px;
right: 22px;
}
#tasklistsbox .treelist li input {
position: absolute;
top: 5px;
left: 18px;
}
#tasklistsbox .treelist li .treetoggle {
top: 8px;
}
#tasklistsbox .treelist li.virtual > .treetoggle {
top: 6px;
}
#tasklistsbox .searchresults {
background: #b0ccd7;
margin-top: 8px;
}
#tasklistsbox .searchresults .boxtitle {
background: none;
padding: 2px 8px 2px 8px;
}
#tasklistsbox .searchresults .listing li {
background-color: #c7e3ef;
}
#mainview-right {
position: absolute;
top: 0;
left: 256px;
right: 0;
bottom: 0;
}
#taskstoolbar {
position: absolute;
top: -6px;
left: 0;
width: 100%;
height: 40px;
white-space: nowrap;
}
#taskstoolbar a.button.newtask {
background-image: url(buttons.png);
background-position: center -53px;
}
#quickaddbox {
position: absolute;
top: 2px;
left: 0;
width: 60%;
height: 32px;
white-space: nowrap;
}
#quickaddinput {
width: 85%;
margin: 0;
padding: 3px 8px;
height: 18px;
background: #f1f1f1;
background: rgba(255, 255, 255, 0.7);
border-color: #a3a3a3;
font-weight: bold;
}
#quickaddbox .button {
margin-left: 5px;
padding: 3px 10px;
font-weight: bold;
}
#tasksview {
position: absolute;
top: 42px;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.2);
overflow: visible;
}
.quickview-active #tasksview {
background-image: url('images/focusview.png');
background-position: center;
background-repeat: no-repeat;
}
#message.statusbar {
border-top: 1px solid #c3c3c3;
}
#tasksview .scroller {
position: absolute;
left: 0;
top: 35px;
width: 100%;
bottom: 0;
overflow: auto;
}
#tasksview .buttonbar {
color: #777;
background: #eee;
background: -moz-linear-gradient(top, #eee 0%, #dfdfdf 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eee), color-stop(100%,#dfdfdf));
background: -o-linear-gradient(top, #eee 0%, #dfdfdf 100%);
background: -ms-linear-gradient(top, #eee 0%, #dfdfdf 100%);
background: linear-gradient(top, #eee 0%, #dfdfdf 100%);
border-bottom: 1px solid #ccc;
position: relative;
line-height: 13px;
height: 20px;
}
#tasksview .buttonbar .buttonbar-right {
position: absolute;
top: 6px;
right: 8px;
}
.buttonbar-right .listmenu {
display: inline-block;
cursor: pointer;
}
.buttonbar-right a.iconbutton {
padding: 0;
background-image: url(sprites.png);
background-position: 0 -238px;
}
.buttonbar-right a.iconbutton.sorting {
background-position: -18px -347px;
}
#thelist {
padding: 0;
margin: 1em;
list-style: none;
}
#listmessagebox {
display: none;
font-size: 14px;
color: #666;
margin: 1.5em;
text-shadow: 0px 1px 1px #fff;
text-align:center;
}
.taskitem {
position: relative;
display: block;
margin-bottom: 3px;
}
.taskitem.dragging {
opacity: 0.5;
}
.taskitem .childtasks {
position: relative;
padding: 0;
margin: 3px 0 0 20px;
list-style: none;
}
.taskitem .childtoggle {
display: none;
position: absolute;
top: 4px;
left: -5px;
padding: 2px;
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 {
position: relative;
margin-left: 14px;
padding: 4px 5px 3px 5px;
border: 1px solid #fff;
border-radius: 5px;
background: #fff;
-webkit-box-shadow: 0 1px 1px 0 rgba(50, 50, 50, 0.5);
-moz-box-shadow: 0 1px 1px 0 rgba(50, 50, 50, 0.5);
box-shadow: 0 1px 1px 0 rgba(50, 50, 50, 0.5);
padding-right: 26em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: default;
outline: none;
}
.taskhead:focus,
.taskhead.droptarget {
border-color: #4787b1;
box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
-moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
-webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
-o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
}
.taskhead .complete {
margin: -1px 1em 0 0;
}
.taskhead .title {
font-size: 12px;
}
.taskhead .flagged,
.taskshow.status-flagged h2:after {
display: inline-block;
width: 16px;
height: 16px;
background: url(sprites.png) 1000px -3px no-repeat;
margin: -3px 1em 0 0;
vertical-align: middle;
cursor: pointer;
}
.taskhead .flagged:focus,
.taskhead:hover .flagged {
background-position: -2px -3px;
}
.taskhead.flagged .flagged,
.taskshow.status-flagged h2:after {
background-position: -2px -23px;
}
.taskhead .tags {
display: block;
position: absolute;
top: 3px;
right: 10em;
max-width: 14em;
height: 16px;
overflow: hidden;
padding-top: 1px;
text-align: right;
}
.tag-draghelper .tag,
.taskhead .tags .tag {
font-size: 85%;
background: #d9ecf4;
border: 1px solid #c2dae5;
border-radius: 4px;
padding: 1px 7px;
margin-right: 3px;
}
.tag-draghelper li.tag {
list-style: none;
font-size: 100%;
}
.taskhead .date {
position: absolute;
top: 4px;
right: 30px;
text-align: right;
cursor: pointer;
}
.taskhead.nodate .date {
color: #ddd;
}
.taskhead.overdue .date {
color: #d00;
}
.taskhead.nodate:hover .date {
color: #999;
}
.taskhead .date input {
padding: 1px 2px;
border: 1px solid #ddd;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
outline: none;
text-align: right;
width: 6em;
font-size: 11px;
}
.taskhead .actions {
display: block;
position: absolute;
top: 3px;
right: 6px;
width: 18px;
height: 18px;
background: url(sprites.png) 1000px -80px no-repeat;
text-indent: -5000px;
overflow: hidden;
cursor: pointer;
}
.taskhead .actions:focus,
.taskhead:hover .actions {
background-position: 0 -80px;
}
.taskhead.complete {
opacity: 0.6;
}
.taskhead.complete .title {
text-decoration: line-through;
}
.taskhead .progressbar {
position: absolute;
bottom: 1px;
left: 6px;
right: 6px;
height: 2px;
}
.taskhead.complete .progressbar {
display: none;
}
.taskhead .progressvalue {
height: 1px;
background: rgba(1, 124, 180, 0.2);
border-top: 1px solid #219de6;
}
ul.toolbarmenu li span.add,
ul.toolbarmenu li span.expand,
ul.toolbarmenu li span.collapse,
ul.toolbarmenu.iconized .selected span.icon {
background-image: url(sprites.png);
}
ul.toolbarmenu li span.add {
background-position: 0 -302px;
}
ul.toolbarmenu li span.expand {
background-position: 0 -258px;
}
ul.toolbarmenu li span.collapse {
background-position: 0 -280px;
}
ul.toolbarmenu li span.delete {
background-position: 0 -1508px;
}
ul.toolbarmenu.iconized .selected span.icon {
background-position: 0 -324px;
}
ul.toolbarmenu .sortcol.by-auto a {
font-style: italic;
}
.taskitem-draghelper {
/*
width: 32px;
height: 26px;
*/
background: #444;
border: 1px solid #555;
border-radius: 4px;
box-shadow: 0 2px 6px 0 #333;
-moz-box-shadow: 0 2px 6px 0 #333;
-webkit-box-shadow: 0 2px 6px 0 #333;
-o-box-shadow: 0 2px 6px 0 #333;
z-index: 5000;
padding: 2px 10px;
font-size: 20px;
color: #ccc;
opacity: 0.92;
filter: alpha(opacity=90);
text-shadow: 0px 1px 1px #333;
}
#rootdroppable {
display: none;
position: absolute;
top: 2px;
left: 1em;
right: 1em;
height: 5px;
background: #ddd;
border-radius: 3px;
}
#rootdroppable.droptarget {
background: #4787b1;
box-shadow: 0 0 2px 1px rgba(71,135,177, 0.9);
-moz-box-shadow: 0 0 2px 1px rgba(71,135,177, 0.9);
-webkit-box-shadow: 0 0 2px 1px rgba(71,135,177, 0.9);
-o-box-shadow: 0 0 2px 1px rgba(71,135,177, 0.9);
}
/*** task edit form ***/
#taskedit,
#taskshow,
#taskdiff {
display: none;
}
#taskedit {
position: relative;
top: -1.5em;
padding: 0.5em 0.1em;
margin: 0 -0.2em;
}
.taskshow h2 {
margin-top: -0.5em;
}
#taskdiff h2 {
font-size: 18px;
margin: -0.3em 0 0.4em 0;
}
.taskshow.status-completed h2 {
text-decoration: line-through;
}
.taskshow.status-flagged h2:after {
content: " ";
position: relative;
margin-left: 0.6em;
top: 1px;
cursor: default;
}
.taskshow label {
color: #999;
}
.taskshow.status-cancelled {
background: url(images/badge_cancelled.png) top right no-repeat;
}
.task-parent-title {
position: relative;
top: -0.6em;
}
a.morelink {
font-size: 90%;
color: #0069a6;
text-decoration: none;
outline: none;
}
a.morelink:hover {
text-decoration: underline;
}
#taskedit .ui-tabs-panel {
min-height: 24em;
}
#taskeditform input.text,
#taskeditform textarea {
width: 97%;
}
#taskeditform .formbuttons {
margin: 0.5em 0;
}
#taskedit .border-after {
padding-bottom: 0.8em;
margin-bottom: 0.8em;
border-bottom: 2px solid #fafafa;
}
#taskedit .edit-attendees-table {
width: 100%;
margin-top: 0.5em;
}
#taskedit .edit-attendees-table tbody td {
padding: 5px 7px 6px;
}
#taskedit .edit-attendees-table tbody tr:last-child td {
border-bottom: 0;
}
#taskedit .edit-attendees-table th.role,
#taskedit .edit-attendees-table td.role {
width: 9em;
}
#taskedit .edit-attendees-table th.availability,
#taskedit .edit-attendees-table td.availability,
#taskedit .edit-attendees-table th.confirmstate,
#taskedit .edit-attendees-table td.confirmstate {
width: 6em;
}
#taskedit .edit-attendees-table th.options,
#taskedit .edit-attendees-table td.options {
width: 24px;
padding: 2px 4px;
text-align: right;
}
#taskedit .edit-attendees-table th.invite,
#taskedit .edit-attendees-table td.invite {
width: 48px;
padding: 2px;
}
#taskedit .edit-attendees-table th.invite label {
display: inline-block;
position: relative;
top: 4px;
width: 24px;
height: 18px;
min-width: 24px;
padding: 0;
overflow: hidden;
text-indent: -5000px;
white-space: nowrap;
background: url(images/sendinvitation.png) 1px 0 no-repeat;
}
#taskedit .edit-attendees-table th.name,
#taskedit .edit-attendees-table td.name {
width: auto;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#taskedit .edit-attendees-table td.name .attendee-name {
display: block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
padding: 5px 7px 6px 4px;
margin: -5px -7px -6px;
}
#taskedit .edit-attendees-table td.name select {
width: 100%;
}
#taskedit .edit-attendees-table a.deletelink {
display: inline-block;
width: 17px;
height: 17px;
padding: 0;
overflow: hidden;
text-indent: 1000px;
}
#taskedit .edit-attendees-table a.expandlink {
position: absolute;
top: 4px;
right: 6px;
width: 16px;
height: 16px;
}
#edit-attendees-form {
position: relative;
margin-top: 15px;
}
#edit-attendees-form .attendees-invitebox {
text-align: right;
margin: 0;
}
#edit-attendees-form .attendees-invitebox label {
padding-right: 3px;
}
#taskedit-attachments {
margin: 0.6em 0;
}
#taskedit-attachments ul li {
display: block;
color: #333;
font-weight: bold;
padding: 3px 4px 3px 30px;
text-shadow: 0px 1px 1px #fff;
text-decoration: none;
white-space: nowrap;
line-height: 20px;
}
#taskedit-attachments ul li a.file {
padding: 0;
}
#taskedit-attachments-form {
margin-top: 1em;
padding-top: 0.8em;
border-top: 2px solid #fafafa;
}
div.form-section {
position: relative;
margin-top: 0.2em;
margin-bottom: 0.5em;
}
.form-section label {
display: inline-block;
min-width: 7em;
padding-right: 0.5em;
margin-bottom: 0.3em;
}
.tasklistview div.form-section span.task-text + label {
margin-left: 2em;
}
label.block {
display: block;
margin-bottom: 0.3em;
}
.task-description {
margin-bottom: 1em;
}
.taskshow .task-text-old,
.taskshow .task-text-new,
.taskshow .task-text-diff {
padding: 2px;
}
.taskshow .task-text-diff del,
.taskshow .task-text-diff ins {
text-decoration: none;
color: inherit;
}
.taskshow .task-text-old,
.taskshow .task-text-diff del {
background-color: #fdd;
/* text-decoration: line-through; */
}
.taskshow .task-text-new,
.taskshow .task-text-diff ins {
background-color: #dfd;
}
+.tasklistview .taskshow label span.index {
+ vertical-align: inherit;
+ margin-left: 0.6em;
+}
+
#taskedit-completeness-slider {
display: inline-block;
margin-left: 2em;
width: 30em;
height: 0.8em;
border: 1px solid #ccc;
}
#taskedit-tagline {
width: 97%;
}
#taskedit .droptarget {
background-image: url(../../../../skins/larry/images/filedrop.png) !important;
background-position: center bottom !important;
background-repeat: no-repeat !important;
}
#taskedit .droptarget.hover,
#taskedit .droptarget.active {
border-color: #019bc6;
box-shadow: 0 0 3px 2px rgba(71,135,177, 0.5);
-moz-box-shadow: 0 0 3px 2px rgba(71,135,177, 0.5);
-webkit-box-shadow: 0 0 3px 2px rgba(71,135,177, 0.5);
-o-box-shadow: 0 0 3px 2px rgba(71,135,177, 0.5);
}
#taskedit .droptarget.hover {
background-color: #d9ecf4;
box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
-moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
-webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
-o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
}
#task-links {
margin-top: 0;
margin-bottom: 0.2em;
}
#task-links label {
vertical-align: top;
margin-top: 0.3em;
}
#task-links .attachmentslist {
display: inline-block;
}
#task-links .attachmentslist li {
display: inline-block;
margin-right: 1em;
}
#taskedit-links .attachmentslist li.message.eml,
#task-links .attachmentslist li.message.eml {
background-image: url(sprites.png);
background-position: -2px -388px;
}
#taskedit-links .attachmentslist li.message a.messagelink,
#task-links .attachmentslist li.message a.messagelink {
padding: 0 0 0 24px;
}
#taskedit-links .attachmentslist li.deleted a.messagelink,
#taskedit-links .attachmentslist li.deleted a.messagelink:hover {
text-decoration: line-through;
}
#taskedit-links label {
float: left;
margin-top: 0.3em;
}
#taskedit-links .task-text {
margin-left: 8em;
min-height: 22px;
}
#taskedit-links .attachmentslist li a.delete {
top: 0;
background-position: -6px -378px;
}
#task-attachments .attachmentslist li {
float: left;
margin-right: 1em;
}
#task-attachments .attachmentslist li a {
outline: none;
}
.task-attendees span.attendee {
padding-right: 18px;
margin-right: 0.5em;
background: url(images/attendee-status.png) right 0 no-repeat;
}
.task-attendees span.attendee a.mailtolink {
text-decoration: none;
white-space: nowrap;
outline: none;
}
.task-attendees span.attendee a.mailtolink:hover {
text-decoration: underline;
}
.task-attendees span.completed {
background-position: right -20px;
}
.task-attendees span.declined {
background-position: right -40px;
}
.task-attendees span.tentative {
background-position: right -60px;
}
.task-attendees span.delegated {
background-position: right -180px;
}
.task-attendees span.in-process {
background-position: right -200px;
}
.task-attendees span.accepted {
background-position: right -220px;
}
.task-attendees span.organizer {
background-position: right 100px;
}
#all-task-attendees span.attendee {
display: block;
margin-bottom: 0.4em;
padding-bottom: 0.3em;
border-bottom: 1px solid #ddd;
}
.tasklistview .uidialog .tabbed {
min-width: 600px;
}
.tasklistview .uidialog .propform fieldset.ui-tabs-panel {
min-height: 290px;
}
.tasklistview .uidialog .propform #taskedit-tasklistame {
width: 20em;
}
.task-dialog-message {
margin-top: 0.5em;
padding: 0.8em;
border: 1px solid #ffdf0e;
background-color: #fef893;
}
.task-dialog-message .message,
.task-update-confirm .message {
margin-bottom: 0.5em;
}
/* Invitation UI in mail */
.messagelist tbody .attachment span.ical {
display: inline-block;
vertical-align: middle;
height: 18px;
width: 20px;
padding: 0;
background: url(images/ical-attachment.png) 2px 1px no-repeat;
}
div.tasklist-invitebox {
min-height: 20px;
margin: 5px 8px;
padding: 3px 6px 6px 34px;
border: 1px solid #ffdf0e;
background: url(images/tasklist.png) 6px 5px no-repeat #fef893;
}
div.tasklist-invitebox td {
padding: 2px;
}
div.tasklist-invitebox td.ititle {
font-weight: bold;
padding-right: 0.5em;
}
div.tasklist-invitebox td.label {
color: #666;
padding-right: 1em;
}
#task-rsvp .rsvp-buttons,
#task-rsvp .itip-reply-controls,
div.tasklist-invitebox .itip-buttons div {
margin-top: 0.5em;
}
#task-rsvp .itip-reply-controls a,
#task-rsvp .itip-reply-controls label {
color: #333;
}
#task-rsvp input.button,
div.tasklist-invitebox input.button {
font-weight: bold;
margin-right: 0.5em;
}
div.tasklist-invitebox .folder-select {
font-weight: 10px;
margin-left: 1em;
}
div.tasklist-invitebox .rsvp-status {
padding-left: 2px;
}
div.tasklist-invitebox .rsvp-status.loading {
color: #666;
padding: 1px 0 2px 24px;
background: url(images/loading_blue.gif) top left no-repeat;
}
div.tasklist-invitebox .rsvp-status.hint {
color: #666;
text-shadow: none;
font-style: italic;
}
#task-partstat .changersvp,
.tasklistview .edit-attendees-table td.confirmstate span,
div.tasklist-invitebox .rsvp-status.declined,
div.tasklist-invitebox .rsvp-status.tentative,
div.tasklist-invitebox .rsvp-status.accepted,
div.tasklist-invitebox .rsvp-status.delegated,
div.tasklist-invitebox .rsvp-status.in-process,
div.tasklist-invitebox .rsvp-status.completed,
div.tasklist-invitebox .rsvp-status.needs-action {
padding: 0 0 1px 22px;
background: url(images/attendee-status.png) 2px -20px no-repeat;
}
#task-partstat .changersvp.declined,
div.tasklist-invitebox .rsvp-status.declined,
.tasklistview .edit-attendees-table td.confirmstate span.declined {
background-position: 2px -40px;
}
#task-partstat .changersvp.tentative,
div.tasklist-invitebox .rsvp-status.tentative,
.tasklistview .edit-attendees-table td.confirmstate span.tentative {
background-position: 2px -60px;
}
#task-partstat .changersvp.delegated,
div.tasklist-invitebox .rsvp-status.delegated,
.tasklistview .edit-attendees-table td.confirmstate span.delegated {
background-position: 2px -180px;
}
#task-partstat .changersvp.needs-action,
div.tasklist-invitebox .rsvp-status.needs-action,
.tasklistview .edit-attendees-table td.confirmstate span.needs-action {
background-position: 2px 0;
}
#task-partstat .changersvp.in-process,
div.tasklist-invitebox .rsvp-status.in-process,
.tasklistview .edit-attendees-table td.confirmstate span.in-process {
background-position: 2px -200px;
}
#task-partstat .changersvp.accepted,
div.tasklist-invitebox .rsvp-status.accepted,
.tasklistview .edit-attendees-table td.confirmstate span.accepted {
background-position: 2px -220px;
}
div.messagetasklinks {
position: relative;
margin: 8px 8px;
padding: 4px 8px 4px 30px;
border: 1px solid #dfdfdf;
background: #fafafa;
border-radius: 4px;
}
div.messagetasklinks::before {
content: " ";
position: absolute;
top: 4px;
left: 8px;
width: 18px;
height: 18px;
background: url(buttons.png) -6px -115px no-repeat;
}
div.messagetasklinks ul.tasklist {
margin: 0;
padding: 0;
list-style: none;
}
div.messagetasklinks .messagetaskref {
display: block;
margin-bottom: 2px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
div.messagetasklinks a.messagetasklink {
position: relative;
display: inline-block;
color: #333;
font-weight: bold;
padding: 3px 0 2px 2px;
text-shadow: 0px 1px 1px #fff;
text-decoration: none;
white-space: nowrap;
vertical-align: middle;
}
div.messagetasklinks .messagetaskref.complete a.messagetasklink {
text-decoration: line-through;
text-shadow: none;
color: #666;
}
div.messagetasklinks .messagetaskref input.complete {
vertical-align: middle;
}
.tasklist.attachmentwin #attachmenttoolbar {
position: relative;
top: -6px;
height: 40px;
}
.tasklist.attachmentwin #attachmentcontainer {
position: absolute;
top: 0;
left: 232px;
right: 0;
bottom: 0;
}
.tasklist.attachmentwin #attachmentframe {
width: 100%;
height: 100%;
border: 0;
background-color: #fff;
border-radius: 4px;
}
.tasklist.attachmentwin #partheader {
position: absolute;
top: 0;
left: 0;
width: 220px;
bottom: 0;
}
.tasklist.attachmentwin #partheader table {
table-layout: fixed;
overflow: hidden;
}
.tasklist.attachmentwin #partheader table td {
color: #666;
padding: 4px 6px;
text-overflow: ellipsis;
overflow: hidden;
}
.tasklist.attachmentwin #partheader table td.header {
font-weight: bold;
}
.tasklist.attachmentwin #partheader table td.title {
width: 60px;
padding-right: 0;
}
/** 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;
}
diff --git a/plugins/tasklist/skins/larry/templates/mainview.html b/plugins/tasklist/skins/larry/templates/mainview.html
index 3a3a227d..520d0712 100644
--- a/plugins/tasklist/skins/larry/templates/mainview.html
+++ b/plugins/tasklist/skins/larry/templates/mainview.html
@@ -1,375 +1,370 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<!--[if lte IE 8]><link rel="stylesheet" type="text/css" href="/this/iehacks.css" /><![endif]-->
</head>
<body class="tasklistview noscroll">
<roundcube:include file="/includes/header.html" />
<h1 class="voice"><roundcube:label name="tasklist.navtitle" /></h1>
<div id="mainscreen">
<div id="sidebar">
<h2 id="aria-label-toolbar" class="voice"><roundcube:label name="arialabeltoolbar" /></h2>
<div id="taskstoolbar" class="toolbar" role="toolbar" aria-labelledby="aria-label-toolbar">
<roundcube:button command="newtask" type="link" class="button newtask disabled" classAct="button newtask" classSel="button newtask pressed" label="tasklist.newtask" title="tasklist.newtask" />
<roundcube:button command="print" type="link" class="button print disabled" classAct="button print" classSel="button print pressed" label="print" title="tasklist.printtitle" />
<roundcube:container name="toolbar" id="taskstoolbar" />
</div>
<div id="tagsbox" class="uibox listbox">
<h2 class="boxtitle" id="aria-label-tagsbox"><roundcube:label name="tasklist.tags" id="taglist" /></h2>
<div class="scroller">
<roundcube:object name="plugin.tagslist" id="tagslist" class="tagcloud" role="region" aria-labelledby="aria-label-tagsbox" aria-controls="thelist" />
</div>
</div>
<div id="tasklistsbox" class="uibox listbox" role="navigation" aria-labelledby="aria-label-tasklists">
<h2 class="boxtitle" id="aria-label-tasklists"><roundcube:label name="tasklist.lists" />
<a href="#tasklists" class="iconbutton search" title="<roundcube:label name='tasklist.findlists' />" tabindex="0"><roundcube:label name="tasklist.findlists" /></a>
</h2>
<div class="listsearchbox">
<div class="searchbox" role="search" aria-labelledby="aria-label-listsearchform" aria-controls="tasklists">
<h3 id="aria-label-listsearchform" class="voice"><roundcube:label name="tasklist.arialabellistsearchform" /></h3>
<label for="tasklistsearch" class="voice"><roundcube:label name="tasklist.searchterms" /></label>
<input type="text" name="q" id="tasklistsearch" placeholder="<roundcube:label name='tasklist.findlists' />" />
<a class="iconbutton searchicon"></a>
<roundcube:button command="reset-listsearch" id="tasklistsearch-reset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
</div>
</div>
<div class="scroller withfooter">
<roundcube:object name="plugin.tasklists" id="tasklists" class="treelist listing" />
</div>
<div class="boxfooter">
<roundcube:button command="list-create" type="link" title="tasklist.createlist" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" label="tasklist.createlist" /><roundcube:button name="tasklistoptionslink" id="tasklistoptionsmenulink" type="link" title="tasklist.listactions" class="listbutton groupactions" onclick="return UI.toggle_popup('tasklistoptionsmenu', event, { above:true })" innerClass="inner" label="tasklist.listactions" aria-haspopup="true" aria-expanded="false" aria-owns="tasklistoptionsmenu-menu" />
</div>
</div>
<div id="tasklistoptionsmenu" class="popupmenu" aria-hidden="true">
<h3 id="aria-label-tasklistoptions" class="voice"><roundcube:label name="tasklist.listactions" /></h3>
<ul class="toolbarmenu" id="tasklistoptionsmenu-menu" role="menu" aria-labelledby="aria-label-tasklistoptions">
<li role="menuitem"><roundcube:button command="list-edit" label="edit" classAct="active" /></li>
<li role="menuitem"><roundcube:button command="list-delete" label="delete" classAct="active" /></li>
<!--<li role="menuitem"><roundcube:button command="list-import" label="tasklist.import" classAct="active" /></li>-->
<roundcube:if condition="env:tasklist_driver == 'kolab'" />
<li role="menuitem"><roundcube:button command="list-remove" label="tasklist.removelist" classAct="active" /></li>
<roundcube:endif />
<roundcube:if condition="config:calendar_caldav_url" />
<li role="menuitem"><roundcube:button command="list-showurl" label="tasklist.showcaldavurl" classAct="active" /></li>
<roundcube:endif />
<roundcube:if condition="env:tasklist_driver == 'kolab'" />
<li role="menuitem"><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
<roundcube:endif />
</ul>
</div>
</div>
<div id="mainview-right">
<div id="quickaddbox" role="region" aria-labelledby="aria-label-quickaddbox">
<h2 id="aria-label-quickaddbox" class="voice"><roundcube:label name="tasklist.arialabelquickaddbox" /></h2>
<roundcube:object name="plugin.quickaddform" />
</div>
<div id="quicksearchbar" role="search" aria-labelledby="aria-label-searchform">
<h2 id="aria-label-searchform" class="voice"><roundcube:label name="tasklist.arialabelsearchform" /></h2>
<label for="quicksearchbox" class="voice"><roundcube:label name="tasklist.arialabelquicksearchbox" /></label>
<roundcube:object name="plugin.searchform" id="quicksearchbox" />
<a id="searchmenulink" class="iconbutton searchoptions" > </a>
<roundcube:button command="reset-search" id="searchreset" class="iconbutton reset" title="resetsearch" label="resetsearch" />
</div>
<div id="tasksview" class="uibox">
<div class="boxtitle buttonbar">
<h2 id="aria-label-taskselector" class="voice"><roundcube:label name="tasklist.arialabeltaskselector" /></h2>
<ul id="taskselector" role="radiogroup" aria-labelledby="aria-label-taskselector" aria-controls="thelist">
<li class="all selected" role="radio" aria-checked="true" aria-labelledby="aria-radio-all"><a href="#all" id="aria-radio-all"><roundcube:label name="tasklist.all" /><span class="count"></span></a></li>
<li class="overdue inactive" role="radio" aria-checked="false" aria-labelledby="aria-radio-overdue"><a href="#overdue" id="aria-radio-overdue"><roundcube:label name="tasklist.overdue" /><span class="count"></span></a></li>
<li class="flagged" role="radio" aria-checked="false" aria-labelledby="aria-radio-flagged"><a href="#flagged" id="aria-radio-flagged"><roundcube:label name="tasklist.flagged" /><span class="count"></span></a></li>
<li class="today" role="radio" aria-checked="false" aria-labelledby="aria-radio-today"><a href="#today" id="aria-radio-today"><roundcube:label name="tasklist.today" /><span class="count"></span></a></li>
<li class="tomorrow" role="radio" aria-checked="false" aria-labelledby="aria-radio-tomorrow"><a href="#tomorrow" id="aria-radio-tomorrow"><roundcube:label name="tasklist.tomorrow" /><span class="count"></span></a></li>
<roundcube:if condition="env:tasklist_driver != 'kolab'" />
<li class="week" role="radio" aria-checked="false" aria-labelledby="aria-radio-week"><a href="#week" id="aria-radio-week"><roundcube:label name="tasklist.next7days" /></a></li>
<roundcube:endif />
<li class="later" role="radio" aria-checked="false" aria-labelledby="aria-radio-later"><a href="#later" id="aria-radio-later"><roundcube:label name="tasklist.later" /></a></li>
<li class="nodate" role="radio" aria-checked="false" aria-labelledby="aria-radio-nodate"><a href="#nodate" id="aria-radio-nodate"><roundcube:label name="tasklist.nodate" ucfirst="true" /></a></li>
<roundcube:if condition="env:tasklist_driver == 'kolab'" />
<li class="mytasks" role="radio" aria-checked="false" aria-labelledby="aria-radio-mytasks"><a href="#mytasks" id="aria-radio-mytasks" title="<roundcube:label name='tasklist.mytaskstitle'/>"><roundcube:label name="tasklist.mytasks" /><span class="count"></span></a></li>
<li class="assigned" role="radio" aria-checked="false" aria-labelledby="aria-radio-assigned"><a href="#assigned" id="aria-radio-assigned" title="<roundcube:label name='tasklist.assignedtitle'/>"><roundcube:label name="tasklist.assigned" /></a></li>
<roundcube:endif />
<li class="complete" role="radio" aria-checked="false" aria-labelledby="aria-radio-complete"><a href="#complete" id="aria-radio-complete"><roundcube:label name="tasklist.complete" /><span class="count"></span></a></li>
</ul>
<div class="buttonbar-right">
<roundcube:button name="taskviewactionslink" id="taskviewactionslink" type="link" title="tasklist.viewactions" class="iconbutton viewactions" onclick="return UI.toggle_popup('taskviewactions',event)" label="tasklist.viewactions" aria-haspopup="true" aria-expanded="false" aria-owns="taskviewactions-menu" />
<roundcube:button name="taskviewsortmenulink" id="taskviewsortmenulink" type="link" title="sortby" class="iconbutton sorting" onclick="return UI.toggle_popup('taskviewsortmenu',event)" label="sortby" aria-haspopup="true" aria-expanded="false" aria-owns="taskviewsortmenu-menu" />
</div>
<div id="taskviewsortmenu" class="popupmenu" aria-hidden="true" data-align="right">
<h3 id="aria-label-taskviewsortmenu" class="voice"><roundcube:label name="tasklist.arialabelsortmenu" /></h3>
<ul class="toolbarmenu iconized" id="taskviewsortmenu-menu" role="menu" aria-labelledby="aria-label-taskviewsortmenu">
<ul role="radiogroup" aria-label="<roundcube:label name='sortby' />">
<li><roundcube:button command="list-sort" prop="auto" type="link" label="tasklist.auto" role="radio" aria-checked="false" class="sortcol by-auto icon active" innerclass="icon" /></li>
<li><roundcube:button command="list-sort" prop="datetime" type="link" label="tasklist.datetime" role="radio" aria-checked="false" class="sortcol by-datetime icon active" innerclass="icon" /></li>
<li><roundcube:button command="list-sort" prop="startdatetime" type="link" label="tasklist.start" role="radio" aria-checked="false" class="sortcol by-startdatetime icon active" innerclass="icon" /></li>
<li><roundcube:button command="list-sort" prop="flagged" type="link" label="tasklist.flagged" role="radio" aria-checked="false" class="sortcol by-flagged icon active" innerclass="icon" /></li>
<li><roundcube:button command="list-sort" prop="complete" type="link" label="tasklist.completeness" role="radio" aria-checked="false" class="sortcol by-complete icon active" innerclass="icon" /></li>
<li><roundcube:button command="list-sort" prop="changed" type="link" label="tasklist.changed" role="radio" aria-checked="false" class="sortcol by-changed icon active" innerclass="icon" /></li>
</ul>
<li role="separator" class="separator"><label id="aria-label-taskviewsortorder"><roundcube:label name="listorder" /></label></li>
<ul role="radiogroup" aria-labelledby="aria-label-taskviewsortorder">
<li><roundcube:button command="list-order" prop="asc" type="link" label="sortasc" role="radio" aria-checked="false" class="sortorder asc icon" classAct="icon sortorder asc active" innerclass="icon" /></li>
<li><roundcube:button command="list-order" prop="desc" type="link" label="sortdesc" role="radio" aria-checked="false" class="sortorder desc icon" classAct="icon sortorder desc active" innerclass="icon" /></li>
</ul>
</ul>
</div>
<div id="taskviewactions" class="popupmenu" aria-hidden="true" data-align="right">
<h3 id="aria-label-taskviewactions" class="voice"><roundcube:label name="tasklist.viewactions" /></h3>
<ul class="toolbarmenu" id="taskviewactions-menu" role="menu" aria-labelledby="aria-label-taskviewactions">
<li role="menuitem"><roundcube:button command="expand-all" label="expand-all" class="icon" classAct="icon active" innerclass="icon expand" /></li>
<li role="menuitem"><roundcube:button command="collapse-all" label="collapse-all" class="icon" classAct="icon active" innerclass="icon collapse" /></li>
</ul>
</div>
</div>
<h2 class="voice" id="aria-label-tasklisting"><roundcube:label name="tasklist.arialabeltasklisting" /></h2>
<div class="scroller" role="main" aria-labelledby="aria-label-tasklisting">
<roundcube:object name="plugin.tasks" id="thelist" role="tree" />
<div id="listmessagebox"></div>
<div id="rootdroppable"></div>
</div>
</div>
<div id="taskitemmenu" class="popupmenu" aria-hidden="true" data-align="right">
<h3 id="aria-label-taskactions" class="voice"><roundcube:label name="tasklist.taskactions" /></h3>
<ul class="toolbarmenu iconized" id="taskitemmenu-menu" role="menu" aria-labelledby="aria-label-taskactions">
<li role="menuitem"><roundcube:button name="edit" type="link" onclick="rctasks.edit_task(rctasks.selected_task.id, 'edit'); return false" label="edit" class="icon active" innerclass="icon edit" /></li>
<li role="menuitem"><roundcube:button name="delete" type="link" onclick="rctasks.delete_task(rctasks.selected_task.id); return false" label="delete" class="icon active" innerclass="icon delete" /></li>
<li role="menuitem"><roundcube:button name="addchild" type="link" onclick="rctasks.add_childtask(rctasks.selected_task.id); return false" label="tasklist.addsubtask" class="icon active" innerclass="icon add" /></li>
<roundcube:if condition="env:tasklist_driver == 'kolab' && config:kolab_bonnie_api" />
<li role="menuitem"><roundcube:button command="task-history" type="link" label="tasklist.taskhistory" class="icon" classAct="icon active" innerclass="icon history" /></li>
<roundcube:endif />
</ul>
</div>
</div>
</div>
<roundcube:object name="message" id="messagestack" />
<div id="taskshow" class="taskshow">
<div id="task-parent-title" class="form-section task-parent-title"></div>
<div class="form-section">
<h2 id="task-title"></h2>
</div>
<div id="task-description" class="form-section task-description">
</div>
<div id="task-tags" class="form-section">
<label><roundcube:label name="tasklist.tags" /></label>
<span class="task-text tagedit"></span>
</div>
<div id="task-start" class="form-section">
<label><roundcube:label name="tasklist.start" /></label>
<span class="task-text"></span>
<span id="task-starttime"></span>
</div>
<div id="task-date" class="form-section">
<label><roundcube:label name="tasklist.datetime" /></label>
<span class="task-text"></span>
<span id="task-time"></span>
</div>
<div id="task-recurrence" class="form-section">
<label><roundcube:label name="tasklist.repeat" /></label>
<span class="task-text"></span>
</div>
<div id="task-alarm" class="form-section">
<label><roundcube:label name="tasklist.alarms" /></label>
<span class="task-text"></span>
</div>
<div id="task-attendees" class="form-section task-attendees">
<label><roundcube:label name="tasklist.assignedto" /></label>
<span class="task-text"></span>
</div>
<div id="task-organizer" class="form-section task-attendees">
<label><roundcube:label name="tasklist.roleorganizer" /></label>
<span class="task-text"></span>
</div>
<!--
<div id="task-partstat" class="form-section">
<label><roundcube:label name="tasklist.mystatus" /></label>
<span class="changersvp" role="button" tabindex="0" title="<roundcube:label name='tasklist.changepartstat' />">
<span class="task-text"></span>
<a class="iconbutton edit"><roundcube:label name='tasklist.changepartstat' /></a>
</span>
</div>
-->
<div id="task-list" class="form-section">
<label><roundcube:label name="tasklist.list" /></label>
<span class="task-text"></span>
</div>
<div id="task-completeness" class="form-section">
<label><roundcube:label name="tasklist.complete" /></label>
<span class="task-text"></span>
</div>
<div id="task-status" class="form-section">
<label><roundcube:label name="tasklist.status" /></label>
<span class="task-text"></span>
</div>
<div id="task-links" class="form-section">
<label><roundcube:label name="tasklist.links" /></label>
<span class="task-text"></span>
</div>
<div id="task-attachments" class="form-section">
<label><roundcube:label name="attachments" /></label>
<div class="task-text"></div>
</div>
<div id="task-created-changed" class="form-section">
<label><roundcube:label name="tasklist.created" /></label>
<span class="task-text task-created"></span>
<label><roundcube:label name="tasklist.changed" /></label>
<span class="task-text task-changed"></span>
</div>
<div id="task-rsvp-comment" class="form-section">
<label><roundcube:label name="tasklist.rsvpcomment" /></label>
<span class="task-text"></span>
</div>
<roundcube:object name="plugin.task_rsvp_buttons" id="task-rsvp" class="task-dialog-message" style="display:none" />
</div>
<roundcube:if condition="env:tasklist_driver == 'kolab' && config:kolab_bonnie_api" />
<div id="taskhistory" class="uidialog" aria-hidden="true">
<roundcube:object name="plugin.object_changelog_table" class="records-table changelog-table" domain="calendar" />
<div class="compare-button"><input type="button" class="button" value="↳ <roundcube:label name='tasklist.compare' />" /></div>
</div>
<div id="taskdiff" class="uidialog taskshow" aria-hidden="true">
<div class="form-section task-parent-title">
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span> »
</div>
<h2 class="task-title">Task Title</h2>
<h2 class="task-title-new task-text-new"></h2>
<div class="form-section task-description">
<label><roundcube:label name="calendar.description" /></label>
<div class="task-text-diff" style="white-space:pre-wrap"></div>
<div class="task-text-old"></div>
<div class="task-text-new"></div>
</div>
<div class="form-section task-flagged">
<label><roundcube:label name="tasklist.flagged" /></label>
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span>
</div>
<div class="form-section task-start">
<label><roundcube:label name="tasklist.start" /></label>
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span>
</div>
<div class="form-section task-date">
<label><roundcube:label name="tasklist.datetime" /></label>
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span>
</div>
<div class="form-section task-recurrence">
<label><roundcube:label name="tasklist.repeat" /></label>
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span>
</div>
<div class="form-section task-alarms">
<label><roundcube:label name="tasklist.alarms" /></label>
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span>
</div>
<div class="form-section task-attendees">
- <label><roundcube:label name="tasklist.assignedto" /></label>
- <span class="task-text-old"></span> ⇢
- <span class="task-text-new"></span>
- </div>
- <div class="form-section task-organizer">
- <label><roundcube:label name="tasklist.roleorganizer" /></label>
+ <label><roundcube:label name="tasklist.assignedto" /><span class="index"></span></label>
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span>
</div>
<div class="form-section task-complete">
<label><roundcube:label name="tasklist.complete" /></label>
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span>
</div>
<div class="form-section task-status">
<label><roundcube:label name="tasklist.status" /></label>
<span class="task-text-old"></span> ⇢
<span class="task-text-new"></span>
</div>
<div class="form-section task-links">
- <label><roundcube:label name="tasklist.links" /></label>
+ <label><roundcube:label name="tasklist.links" /><span class="index"></span></label>
<span class="task-text"></span>
</div>
<div class="form-section task-attachments">
- <label><roundcube:label name="attachments" /></label>
+ <label><roundcube:label name="attachments" /><span class="index"></span></label>
<div class="task-text-old"></div>
<div class="task-text-new"></div>
</div>
</div>
<roundcube:endif />
<roundcube:include file="/templates/taskedit.html" />
<div id="tasklistform" class="uidialog">
<roundcube:label name="loading" />
<roundcube:container name="tasklistform" id="tasklistform" />
</div>
<script type="text/javascript">
// UI startup
var UI = new rcube_mail_ui();
$(document).ready(function(e){
UI.init();
rcmail.addEventListener('tasklist_editform_load', function(e){
if (rcmail.env.tasklist_driver == 'kolab')
UI.init_tabs($('#tasklistform > form').addClass('propform tabbed'));
});
new rcube_splitter({ id:'taskviewsplitter', p1:'#sidebar', p2:'#mainview-right',
orientation:'v', relative:true, start:240, min:180, size:12 }).init();
new rcube_splitter({ id:'taskviewsplitterv', p1:'#tagsbox', p2:'#tasklistsbox',
orientation:'h', relative:true, start:242, min:120, size:12, offset:4 }).init();
// animation to unfold list search box
$('#tasklistsbox .boxtitle a.search').click(function(e){
var title = $('#tasklistsbox .boxtitle'),
box = $('#tasklistsbox .listsearchbox'),
dir = box.is(':visible') ? -1 : 1;
box.slideToggle({
duration: 160,
progress: function(animation, progress) {
if (dir < 0) progress = 1 - progress;
$('#tasklistsbox .scroller').css('top', (title.outerHeight() + 34 * progress) + 'px');
},
complete: function() {
box.toggleClass('expanded');
if (box.is(':visible')) {
box.find('input[type=text]').focus();
}
else {
$('#tasklistsearch-reset').click();
}
// TODO: save state in localStorage
}
});
});
});
</script>
</body>
</html>
\ No newline at end of file
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Wed, Jul 8, 5:29 PM (1 d, 6 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1049232
Default Alt Text
(51 KB)
Attached To
Mode
R14 roundcubemail-plugins-kolab
Attached
Detach File
Event Timeline
Log In to Comment