diff --git a/css/sprite.css b/css/sprite.css new file mode 100644 index 000000000..62a92e2a2 --- /dev/null +++ b/css/sprite.css @@ -0,0 +1,142 @@ +.icon { + background: url("../img/sprites.svg") no-repeat; +} + +.ico-add { + background-position: 20% 0; +} + +.ico-all { + background-position: 80% 20%; +} + +.ico-alphabetically { + background-position: 0 20%; +} + +.ico-calendar { + background-position: 20% 20%; +} + +.ico-calendar-due { + background-position: 40% 0; +} + +.ico-calendar-overdue { + background-position: 40% 20%; +} + +.ico-checkmark { + background-position: 0 40%; +} + +.ico-checkmark-color { + background-position: 20% 40%; +} + +.ico-clock { + background-position: 40% 40%; +} + +.ico-clock-due { + background-position: 60% 0; +} + +.ico-clock-overdue { + background-position: 60% 20%; +} + +.ico-close { + background-position: 60% 40%; +} + +.ico-current { + background-position: 0 60%; +} + +.ico-hide { + background-position: 20% 60%; +} + +.ico-manual { + background-position: 40% 60%; +} + +.ico-menu { + background-position: 60% 60%; +} + +.ico-note { + background-position: 80% 0; +} + +.ico-percent { + background-position: 0 0; +} + +.ico-percent-active { + background-position: 80% 40%; +} + +.ico-random { + background-position: 80% 60%; +} + +.ico-settings { + background-position: 0 80%; +} + +.ico-sort-down { + background-position: 20% 80%; +} + +.ico-sort-up { + background-position: 40% 80%; +} + +.ico-star { + background-position: 60% 80%; +} + +.ico-star-high { + background-position: 80% 80%; +} + +.ico-star-low { + background-position: 100% 0; +} + +.ico-star-medium { + background-position: 100% 20%; +} + +.ico-subtasks-hidden, +.ico-subtasks-hidden\:regular { + background-position: 100% 40%; +} + +.ico-subtasks-hidden:hover, +.ico-subtasks-hidden\:hover { + background-position: 100% 60%; +} + +.ico-subtasks-visible { + background-position: 100% 80%; +} + +.ico-tag { + background-position: 0 100%; +} + +.ico-tag-active { + background-position: 20% 100%; +} + +.ico-toggle { + background-position: 40% 100%; +} + +.ico-trash { + background-position: 60% 100%; +} + diff --git a/css/style.css b/css/style.css index 87c873bf8..2fe69adb7 100644 --- a/css/style.css +++ b/css/style.css @@ -20,13 +20,8 @@ max-height: 100px; } #app-navigation li > a { - opacity: 1 !important; padding-right: 20px; } -#app-navigation li > a span.title, -#app-navigation li > a span.icon { - opacity: 0.57; -} #app-navigation li.active > a span.title, #app-navigation li:hover > a span.title, #app-navigation li.active > a span.icon, @@ -50,15 +45,18 @@ #app-navigation .app-navigation-entry-menu li { float: inherit; width: auto !important; - opacity: 0.5; cursor: pointer; } +.collection .icon { + opacity: 1; +} .sortorder-dropdown li { float: inherit; width: auto !important; cursor: pointer; + opacity: .57; } -.sortorder-dropdown li.active a { +.sortorder-dropdown li.active { opacity: 1 !important; } .sortorder-dropdown a { @@ -73,7 +71,7 @@ .sortorder-dropdown li span { cursor: pointer; } -#app-navigation .app-navigation-entry-menu li:hover, +#app-navigation .app-navigation-entry-menu li:hover a, .sortorder-dropdown li:hover { opacity: 1 !important; } @@ -96,12 +94,13 @@ } #app-navigation li a > span.icon { margin-top: -3px; + margin-left: 2px; } #app-navigation li a > span.title { - margin-left: 9px; + margin-left: 11px; } #app-navigation li.animate-up { - max-height: 0px; + max-height: 0; border-bottom: 0; overflow: hidden; } @@ -109,244 +108,171 @@ overflow: hidden; color: #423E3E; } -#content .icon { - background-image: url("../img/sprites.svg"); - height: 20px; - width: 18px; +.icon { + height: 16px; + width: 16px; display: inline-block; - cursor: pointer; vertical-align: middle; + opacity: .5; } -#content .icon.none { - background-position: 0px -20px; -} -#content .icon.list-list, -#content .icon.sort-default { - background-position: -40px 0px; +.task-item .ico-star:hover { + opacity: 0.7; } -#content .icon.collection-starred { - background-position: -20px 0px; +.ico-star-low, +.ico-star-medium, +.ico-star-high { + opacity: 1 !important; } -#content .icon.collection-today { +.icon.ico-calendar { -moz-box-sizing: border-box; - background-position: -240px 0px; - color: #909090; font-size: 7px; font-weight: bold; - line-height: 9px; - padding-top: 7px; + line-height: 21px; text-align: center; - text-shadow: 0 1px 0 white; } -#content .icon.collection-week { - background-position: -220px 0px; -} -#content .icon.collection-completed { - background-position: -100px 0px; -} -#content .icon.collection-all { - background-position: -200px 0px; -} -#content .icon.collection-current { - background-position: -240px -80px; -} -#content .icon.detail-add { - background-position: -80px 0px; - cursor: default; - height: 20px; - width: 20px; - opacity: 0.5; -} -#content .icon.input-date { +.icon.input-date { display: none; - background-position: -160px -100px; opacity: 0.4; transition: opacity 100ms ease 0s; right: 35px; top: 7px; } -#content .icon.input-star { +.icon.input-star { display: none; - background-position: -100px -180px; opacity: 0.5; right: 9px; } -#content .icon.input-star.starred { - background-position: -120px -180px; +.icon.input-star.starred { opacity: 1; } -#content .icon.detail-delete { - background-position: -260px 0; - height: 20px; - opacity: 0.4; - width: 20px; +.icon.task-checkbox, +.icon.detail-checkbox { + border-radius: 3px; + border: 1px solid #b0b0b0; + float: left; + margin: 9px; } -#content .icon.task-checkbox { - background-position: -60px 0px; - height: 20px; - width: 20px; - left: 8px; +#app-sidebar .icon.detail-checkbox { + left: 16px !important; + cursor: pointer; position: absolute; - top: 7px; + top: 19px; + margin: 0; +} +.icon.task-checkbox:not(.disabled):hover, +.icon.detail-checkbox:not(.disabled):hover { + border-color: #000; } -#content .icon.task-checkbox.disabled { +.icon.task-checkbox:not(.ico-checkmark), +.icon.detail-checkbox:not(.ico-checkmark) { + background: unset; +} +.icon.task-checkbox.disabled, +.icon.detail-checkbox.disabled { cursor: not-allowed; } -#content .icon.task-attachment { - background-position: 0 -120px; +.icon.ico-note { display: none; } -#content .icon.subtasks { +.icon.subtasks { float:right; - background-position: -220px -100px; -} -#content .icon.detail-trash { - background-position: -260px 0px; - transition: opacity 100ms ease 0s; - opacity: 0.6; } -#content .icon.detail-settings { - background-position: -200px -40px; +.icon.detail-settings { transition: opacity 100ms ease 0s; opacity: 0.6; } -#content .icon.detail-close { - background-position: -260px -20px; - opacity: 0.6; - transition: opacity 100ms ease 0s; -} -#content .icon.detail-checkbox { - left: 18px; - position: absolute; - top: 17px; - background-position: -60px 0px; -} -#content .disabled .icon.detail-checkbox { - cursor: not-allowed; -} -#content .icon.detail-reminder { - background-position: -40px -40px; - height: 20px; - width: 20px; -} -#content .icon.detail-percent { - background-position: -260px -60px; -} -#content .icon.detail-priority, -#content .icon.sort-priority { - background-position: -160px -80px; -} -#content .icon.detail-categories { - background-position: -200px -60px; -} -#content .icon.task-checked, -#content .icon.detail-checked { - background-position: -60px -20px; +.icon.detail-reminder { height: 20px; width: 20px; } -#content .icon.detail-star { - position: absolute; - right: 15px; - top: -2px; - background-position: -60px -40px; - height: 60px; - width: 30px; -} -#content .icon.detail-star.low { - background-position: -90px -100px !important; +.icon.ico-checkmark, +.icon.ico-checkmark { + opacity: 1; } -#content .icon.detail-star.medium { - background-position: -60px -100px !important; +a.detail-star { + padding: 15px; + margin-left: auto; + float: right; } -#content .icon.detail-star.high { - background-position: -120px -40px !important; +a.detail-star .icon { + height: 24px; + width: 24px; + background-size: 144px 144px; + opacity: 0.3; } -#content .icon.detail-star:hover { - background-position: -90px -40px; +a.detail-star .icon:hover { + opacity: 0.5; } -#content .disabled .icon.detail-star:hover { - background-position: -60px -40px; +.disabled .icon.detail-star:hover { cursor: not-allowed; } -#content .icon.detail-save { - background-position: -20px -40px; -} -#content .icon.note-fullscreen { - background-position: -140px -60px; +.icon.note-fullscreen { opacity: 0.6; } -#content .icon.note-fullscreen:hover { +.icon.note-fullscreen:hover { opacity: 1; } -#content .icon.toggle-completed-subtasks { - background-position: -140px -100px; +.icon.toggle-completed-subtasks { float: right; - opacity: 0.8; - width: 20px; + opacity: 1; } -#content .icon.toggle-completed-subtasks.hidden { - background-position: -120px -100px; +.icon.toggle-completed-subtasks.hidden { + opacity: 0.5; } -#content .icon.toggle-completed-subtasks:hover { +.icon.toggle-completed-subtasks:hover { opacity: 1; } -#content .calendar-indicator { +.calendar-indicator { min-width: 12px; min-height: 12px; background-color: #F00; display: inline-block; height: 12px; width: 12px; - margin-top: 0px; + margin-top: 0; border-radius: 50%; text-align: center; vertical-align: middle; line-height: 20px; margin-left: 4px; - margin-right: 4px; + margin-right: 2px; } -#content .active .calendar-indicator { +.active .calendar-indicator { height: 16px; width: 16px; margin-left: 2px; margin-right: 2px; } -#content tr:last-child .task-item { +tr:last-child .task-item { height: 39px; } -#content tr:last-child .task-item div.task-body { +tr:last-child .task-item div.task-body { border-width: 1px; } -#content li.task-item:first-child { +.task-item:first-child { margin-top: 0; } -#content li.task-item:first-child .task-body { +.task-item:first-child .task-body { border-width: 1px; } -#content li.task-item, -#content div.task-item { +.task-item { cursor: default; min-height: 37px; list-style: none outside none; overflow: hidden; margin-top: -1px; } -#content li.task-item .subtasks-container, -#content div.task-item .subtasks-container { +.task-item .subtasks-container { margin-left: 35px; } -#content li.task-item .subtasks-container.subtaskshidden li.subtask, -#content div.task-item .subtasks-container.subtaskshidden li.subtask { +.task-item .subtasks-container.subtaskshidden li.subtask { display: none; } -#content li.task-item.add-subtask, -#content div.task-item.add-subtask { +.task-item.add-subtask { background: #ffffff; border: 1px solid #cccccc; } -#content li.task-item.add-subtask input, -#content div.task-item.add-subtask input { +.task-item.add-subtask input { background: transparent none repeat scroll 0 0 !important; border: medium none !important; border-radius: 0 !important; @@ -360,25 +286,20 @@ width: 100%; min-height: 36px; } -#content li.task-item.done .task-body, -#content div.task-item.done .task-body { +.task-item.done .task-body { opacity: 0.6; } -#content li.task-item.done .task-body .title, -#content div.task-item.done .task-body .title { +.task-item.done .task-body .title { text-decoration: line-through; text-shadow: none; } -#content li.task-item .subtasks-container .task-item, -#content div.task-item .subtasks-container .task-item { +.task-item .subtasks-container .task-item { margin-top: -1px; } -#content li.task-item .task-body .icon.large, -#content div.task-item .task-body .icon.large{ - height: 24px; +.task-body .icon.large { + margin: 8px; } -#content li.task-item .task-body, -#content div.task-item .task-body { +.task-body { -moz-box-sizing: border-box; background-color: #ffffff; height: 37px; @@ -388,66 +309,32 @@ border-style: solid; border-width: 1px; border-color: #CCCCCC; + overflow: hidden; } -#content li.task-item .task-body:hover, -#content li.task-item .task-body.active, -#content div.task-item .task-body:hover, -#content div.task-item .task-body.active { +.task-body:hover, +.task-body.active { background-color: #f8f8f8; } -#content li.task-item .task-body .icon.task-separator, -#content div.task-item .task-body .icon.task-separator { +.task-body .icon.task-separator { cursor: default; height: 100%; left: 34px; position: absolute; top: 1px; - background-position: 0 -20px; + background: unset; width: 2px; + border-left: 1px dotted #b0b0b0; } -#content li.task-item .task-body .icon.task-star, -#content div.task-item .task-body .icon.task-star { +.task-body .icon.ico-star { float: right; - margin: 0 8px 0 5px; - background-position: -140px 0px; - height: 34px; - width: 20px; -} -#content li.task-item .task-body .icon.task-star:hover, -#content div.task-item .task-body .icon.task-star:hover { - background-position: -160px 0; -} -#content li.task-item .task-body .icon.task-star.disabled:hover, -#content div.task-item .task-body .icon.task-star.disabled:hover { - background-position: -140px 0; - cursor: not-allowed; } -#content li.task-item .task-body .icon.task-star.high, -#content div.task-item .task-body .icon.task-star.high { - background-position: -180px 0 !important; -} -#content li.task-item .task-body .icon.task-star.medium, -#content div.task-item .task-body .icon.task-star.medium { - background-position: -160px -40px !important; -} -#content li.task-item .task-body .icon.task-star.low, -#content div.task-item .task-body .icon.task-star.low { - background-position: -180px -40px !important; -} -#content li.task-item .task-body .icon.addsubtask, -#content div.task-item .task-body .icon.addsubtask { - background-position: 0 -80px; +.task-body .icon.ico-add { float: right; - margin: 0 2px 0 5px; - height: 34px; - width: 20px; } -#content li.task-item .task-body .icon.addsubtask:hover, -#content div.task-item .task-body .icon.addsubtask:hover { - background-position: -20px -80px; +.task-body .icon.ico-add:hover { + opacity: 1; } -#content li.task-item .task-body .title-wrapper, -#content div.task-item .task-body .title-wrapper { +.task-body .title-wrapper { cursor: pointer; color: #423E3E; display: block; @@ -460,59 +347,42 @@ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); white-space: nowrap; } -#content li.task-item .task-body .title-wrapper .title, -#content div.task-item .task-body .title-wrapper .title { +.task-body .title-wrapper .title { cursor: text; } -#content li.task-item .task-body.attachment .icon.task-attachment, -#content div.task-item .task-body.attachment .icon.task-attachment { +.task-body.attachment .icon.ico-note { display: inline-block; float: right; } -#content li.task-item .task-body .icon.subtasks, -#content div.task-item .task-body .icon.subtasks { +.task-body .icon.subtasks { display: none; } -#content li.task-item .task-body.subtasks .icon.subtasks, -#content div.task-item .task-body.subtasks .icon.subtasks { +.task-body.subtasks .icon.subtasks { display: inline-block; } -#content li.task-item .task-body .icon.toggle-completed-subtasks, -#content div.task-item .task-body .icon.toggle-completed-subtasks { +.task-body .icon.toggle-completed-subtasks { display: none; } -#content li.task-item .task-body.completedsubtasks .icon.toggle-completed-subtasks, -#content div.task-item .task-body.completedsubtasks .icon.toggle-completed-subtasks { +.task-body.completedsubtasks .icon.toggle-completed-subtasks { display: inline-block; } -#content li.task-item .task-body.subtasks.subtaskshidden .icon.subtasks, -#content div.task-item .task-body.subtasks.subtaskshidden .icon.subtasks { - background-position: -260px -100px; -} -#content li.task-item .task-body.subtasks.subtaskshidden .icon.subtasks:hover, -#content div.task-item .task-body.subtasks.subtaskshidden .icon.subtasks:hover { - background-position: -220px -100px; -} -#content li.task-item .task-body .duedate, -#content div.task-item .task-body .duedate { +.task-body .duedate { color: #3B6594; float: right; font-size: 11px; line-height: 14px; - margin: 11px 3px 0 7px; + margin: 10px; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); } -#content li.task-item .task-body .duedate.overdue, -#content div.task-item .task-body .duedate.overdue { +.task-body .duedate.overdue { color: #B3312D; } -#content li.task-item .task-body .listname, -#content div.task-item .task-body .listname { +.task-body .listname { color: #888; float: right; font-size: 11px; line-height: 14px; - margin: 11px 3px 0 7px; + margin: 10px; } .app-tasks #app-content { overflow-x: hidden; @@ -581,13 +451,13 @@ border: 1px solid #CCCCCC; width: 42px; height: 34px; - margin: 12px 0px 12px 12px; - padding: 0px; + margin: 12px 0 12px 12px; + padding: 0; float: right; cursor: pointer; } #app-content .sortorder-dropdown-button .sort-indicator { - margin-left: 0px; + margin-left: 0; visibility: visible; } .sortorder-dropdown { @@ -601,16 +471,19 @@ .sortorder-dropdown .icon { margin: 12px 8px; } -.sort-indicator { +.sortorder-dropdown .icon.sort-indicator { margin-left: auto; + margin-right: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter: alpha(opacity=80); opacity: 0.8; float: right; - margin-top: 2px; visibility: hidden; } -.active .sort-indicator { +.sortorder-dropdown .label { + margin-right: 10px; +} +.sortorder-dropdown .active .icon.sort-indicator { visibility: visible; } #app-content div.task-list .loadmore { @@ -708,12 +581,6 @@ #app-sidebar div.content-wrapper.completed .body .section .section-title { color: #9FA2A6 !important; } -#app-sidebar div.content-wrapper.completed .body .section .icon.detail-date { - background-position: -100px -40px !important; -} -#app-sidebar div.content-wrapper.completed .body .section .icon.detail-reminder { - background-position: -40px -40px !important; -} #app-sidebar div.content-wrapper .title { background-color: #f5f5f5; border-bottom: 1px solid rgba(0, 0, 0, 0.24); @@ -902,13 +769,13 @@ padding-bottom: 32px; } #app-sidebar div.content-wrapper .body .section { - background: url("../img/divider.svg") repeat-x scroll center bottom transparent; + border-bottom: 1px dotted #b0b0b0; height: 46px; padding: 9px 20px 9px 55px; position: relative; text-shadow: 0 1px 0 white; border-top: none; - margin-bottom: 0px; + margin-bottom: 0; } #app-sidebar div.content-wrapper .body .section input { -moz-box-sizing: border-box; @@ -944,7 +811,7 @@ border: 0 none; box-shadow: none; font-weight: bold; - margin-top: 0px; + margin-top: 0; font-family: inherit; } #app-sidebar div.content-wrapper .disabled .body .section .select2-search-field input { @@ -953,7 +820,7 @@ } #app-sidebar div.content-wrapper .body .section select { background-color: rgba(0, 0, 0, 0); - border-radius: 0px; + border-radius: 0; border: 1px solid #CCC; padding: 0; width: 98px; @@ -966,30 +833,19 @@ position: absolute; top: 13px; } -#app-sidebar div.content-wrapper .body .section .icon.detail-delete { +.icon.detail-delete { display: none; - left: auto; + margin-left: auto; right: 22px; } -#app-sidebar div.content-wrapper .body .section .icon.detail-delete:hover { +.icon.detail-save:hover, +.icon.detail-delete:hover { opacity: 0.8; } -#app-sidebar div.content-wrapper .body .section .icon.detail-save { +.icon.detail-save { display: none; - left: auto; - right: 40px; -} -.icon.detail-start, -.icon.detail-date, -.icon.sort-due, -.icon.sort-start { - background-position: -220px -80px; -} -.icon.sort-manual { - background-position: -20px -140px; -} -.icon.sort-alphabetically { - background-position: -20px -160px; + margin-left: auto; + right: 44px; } #app-sidebar div.content-wrapper .body .section .icon.detail-remindertype { display: none; @@ -1020,22 +876,12 @@ #app-sidebar div.content-wrapper .body .section.editing .section-edit { display: block; } -#app-sidebar div.content-wrapper .body .section.date .icon.detail-date, -#app-sidebar div.content-wrapper .body .section.date .icon.detail-start { - background-position: -220px -40px; -} -#app-sidebar div.content-wrapper .body .section.date .icon.detail-date.overdue, -#app-sidebar div.content-wrapper .body .section.date .icon.detail-start.overdue { - background-position: -220px -60px; -} -#app-sidebar div.content-wrapper .body .section.date .icon.detail-percent { - background-position: -260px -80px; -} -#app-sidebar div.content-wrapper .body .section.date .icon.detail-reminder { - background-position: -40px -60px; +.date .icon.ico-calendar-due, +.date .icon.ico-calendar-overdue { + opacity: 1; } -#app-sidebar div.content-wrapper .body .section.date .icon.detail-reminder.overdue { - background-position: -40px -80px; +#app-sidebar div.content-wrapper .body .section.date .icon.ico-percent { + opacity: 1; } #app-sidebar div.content-wrapper .body .section.date:hover .icon.detail-delete { display: block; @@ -1043,35 +889,35 @@ #app-sidebar div.content-wrapper .disabled .body .section.date:hover .icon.detail-delete { display: none; } -#app-sidebar div.content-wrapper .body .section.date .section-title { - color: #4271A6; +.date .section-title { + color: #4271A6 !important; } #app-sidebar div.content-wrapper .body .section.date .section-title.overdue { - color: #B3312D; + color: #B3312D !important; } #app-sidebar div.content-wrapper .body .section.date .section-title.repeat { margin-top: -2px; } -#app-sidebar div.content-wrapper .body .section.high .icon.detail-priority { - background-position: -180px -80px; +.high .icon.detail-priority { + opacity: 1; } -#app-sidebar div.content-wrapper .body .section.high .section-title { - color: #B3312D; +.high .section-title { + color: #B3312D !important; } -#app-sidebar div.content-wrapper .body .section.medium .icon.detail-priority { - background-position: -160px -100px; +.medium .icon.detail-priority { + opacity: 1; } -#app-sidebar div.content-wrapper .body .section.medium .section-title { - color: #FFDD00; +.medium .section-title { + color: #FFDD00 !important; } -#app-sidebar div.content-wrapper .body .section.low .icon.detail-priority { - background-position: -180px -100px; +.low .icon.detail-priority { + opacity: 1; } -#app-sidebar div.content-wrapper .body .section.low .section-title { - color: #4271A6; +.low .section-title { + color: #4271A6 !important; } -#app-sidebar div.content-wrapper .body .section.active .detail-categories { - background-position: -200px -80px; +.icon.ico-tag-active { + opacity: 1; } #app-sidebar div.content-wrapper .body .section.active .select2-search-field input { color: #4271a6; @@ -1079,9 +925,6 @@ #app-sidebar div.content-wrapper .body .section.editing .icon.detail-remindertype { display: block; } -#app-sidebar div.content-wrapper .body .section .icon.detail-remindertype { - background-position: -260px -40px; -} #app-sidebar div.content-wrapper .body .section.detail-reminder .section-description { display: none; font-size: 11px; @@ -1138,7 +981,7 @@ font-size: 11px; } #app-sidebar div.content-wrapper .body .section.detail-addcomment { - background: url("../img/divider.svg") repeat-x scroll center top transparent; + border-top: 1px dotted #b0b0b0; bottom: 0; left: 0; position: absolute; @@ -1196,22 +1039,22 @@ input, textarea { -moz-user-select: text; } -#content a:hover .icon.detail-trash { +a:hover .icon.detail-trash { opacity: 1; } -#content a:hover .icon.detail-settings { +a:hover .icon.detail-settings { opacity: 1; } -#content a:hover .icon.detail-delete { +a:hover .icon.detail-delete { opacity: 0.8; } -#content a:hover .icon.detail-close { +a:hover .icon.detail-close { opacity: 1; } -#content a:hover .icon.input-date { +a:hover .icon.input-date { opacity: 0.8; } -#content a:hover .icon.input-star { +a:hover .icon.input-star { opacity: 1; } input.datepicker-input { @@ -1227,7 +1070,7 @@ input.duration-input { input.percent-input, input.priority-input { width: 35px; - margin-top: 0px; + margin-top: 0; } .ui-widget-content { background: none repeat scroll 0 0 #F9F9F9; @@ -1291,26 +1134,23 @@ td.ui-timepicker-hours table { background: none; border: none; } -.ui-datepicker .ui-datepicker-prev span, -.ui-timepicker .ui-datepicker-prev span, -.ui-datepicker .ui-datepicker-next span, -.ui-timepicker .ui-datepicker-next span { - margin-left: -4px; - margin-top: -4px; -} .ui-datepicker .ui-icon-circle-triangle-w, .ui-timepicker .ui-icon-circle-triangle-w { + /*this will break when sprites.svg is recompiled + might be fixable with scss and @extend*/ background-image: url("../img/sprites.svg"); - background-position: -20px -60px; - height: 10px; - width: 10px; + background-position: -32px -64px; + height: 16px; + width: 16px; } .ui-datepicker .ui-icon-circle-triangle-e, .ui-timepicker .ui-icon-circle-triangle-e { + /*this will break when sprites.svg is recompiled + might be fixable with scss and @extend*/ background-image: url("../img/sprites.svg"); - background-position: -30px -60px; - height: 10px; - width: 10px; + background-position: -16px -64px; + height: 16px; + width: 16px; } .ui-datepicker table, .ui-timepicker table { @@ -1428,31 +1268,27 @@ li.ui-draggable-dragging .duedate { } div.percentdone { height: 3px; - border-radius: 2px 0px 0px 2px; - opacity: 0.75; + border-radius: 2px 0 0 2px; + opacity: .75; } div.percentbar { height: 3px; position: relative; - top: 26px; + top: 28px; left: 42px; margin-right: 103px; margin-bottom: -5px; background-color: #CCC; border-radius: 2px 2px 2px 2px; } -.icon_margin { - top: 2px; - position: relative; -} #searchresults { - padding-top: 0px !important; + padding-top: 0 !important; margin-top: 20px !important; background-color: transparent !important; min-height: 150px; } #searchresults #status { - padding: 10px 0px 18px !important; + padding: 10px 0 18px !important; height: 22px !important; background-color: transparent !important; font-weight: bold; @@ -1464,15 +1300,8 @@ div.percentbar { position: relative; } #searchresults span.icon.task-checkbox { - background-position: -260px -20px; opacity: 0.6; } -#searchresults span.icon.task-checkbox.task-checked { - background-position: -260px -20px; -} -#searchresults span.icon.task-star:hover { - background-position: -140px 0 !important; -} .template { display: none; } @@ -1497,14 +1326,14 @@ div.percentbar { min-height: 22px; } .detail-categories .select2-container-multi .select2-choices .select2-search-choice a.select2-search-choice-close { - background-image: url("../img/sprites.svg"); - background-position: -4px -44px; opacity: 0.4; display: initial; + /*this will break when sprites.svg is recompiled + might be fixable with scss and @extend*/ + background: url("../img/sprites.svg") no-repeat 60% 40%; } .detail-categories .select2-container-multi .select2-choices .select2-search-choice a.select2-search-choice-close:hover { - background-position: -4px -44px; - opacity: 0.8; + opacity: 1; } .categories-list { display: inline-block; @@ -1517,7 +1346,7 @@ div.percentbar { color: #9fa2a6; float: left; font-weight: bold; - margin: -5px 4px 0; + margin: -2px 4px 0; padding: 2px 5px; min-height: 22px; } @@ -1537,7 +1366,7 @@ div.percentbar { } #app-settings-content li select { position: absolute; - right: 0px; + right: 0; } #app-settings-content li.headline { font-weight: bold; @@ -1603,23 +1432,24 @@ ol[dnd-list] .dndPlaceholder { } .colorpicker .colorpicker-list li.randomcolour { - background-image: url('../img/random.svg'); - background-repeat: no-repeat; - background-position: center center; cursor: pointer; } +.colorpicker .colorpicker-list li.randomcolour .ico-random { + filter: invert(1); + opacity: 1; +} -#app-navigation .app-navigation-entry-edit input.icon-close { +#app-navigation .app-navigation-entry-edit input.ico-close { width: 36px; height: 38px; float: left; - margin: 3px 0px; - border-left: 0px none; + margin: 3px 0; + border-left: 0 none; background-color: rgba(240, 240, 240, 0.9); - border-top-left-radius: 0px; - border-bottom-left-radius: 0px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } -#app-navigation .app-navigation-entry-edit input.icon-close:hover { +#app-navigation .app-navigation-entry-edit input.ico-close:hover { background-color: white; } @@ -1644,11 +1474,11 @@ ol[dnd-list] .dndPlaceholder { .confirmed .confirmation-default { display: none !important; } - -.confirmation-confirm, .confirmation-abort { +.confirmation-confirm, +.confirmation-abort { width: 50% !important; display: none !important; - padding-right: 0px !important; + padding-right: 0 !important; background-position: center !important; } @@ -1657,8 +1487,10 @@ ol[dnd-list] .dndPlaceholder { cursor: default !important; } -.confirmed .confirmation-confirm, .confirmed .confirmation-abort { +#app-navigation .app-navigation-entry-menu li.confirmed a.confirmation-confirm, +#app-navigation .app-navigation-entry-menu li.confirmed a.confirmation-abort { display: inline-block !important; + opacity: 1; } .app-navigation-entry-menu li > a:not(:empty).confirmation-confirm { diff --git a/img/divider.svg b/img/divider.svg deleted file mode 100644 index d34e1917a..000000000 --- a/img/divider.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/img/favicon-touch.svg b/img/favicon-touch.svg index 049c7d4ba..a73f891cf 100644 --- a/img/favicon-touch.svg +++ b/img/favicon-touch.svg @@ -1,14 +1,5 @@ - - - - - - + + + + diff --git a/img/favicon.svg b/img/favicon.svg index 3b0dcb4fe..cc1524dc3 100644 --- a/img/favicon.svg +++ b/img/favicon.svg @@ -1,13 +1,5 @@ - - - - - - + + + + diff --git a/img/loading.gif b/img/loading.gif deleted file mode 100644 index f8f3dff6f..000000000 Binary files a/img/loading.gif and /dev/null differ diff --git a/img/random.svg b/img/random.svg deleted file mode 100644 index fb98a3fef..000000000 --- a/img/random.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - diff --git a/img/source/alphabetically.svg b/img/source/alphabetically.svg deleted file mode 100644 index 57912a070..000000000 --- a/img/source/alphabetically.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - diff --git a/img/source/checkbox.svg b/img/source/checkbox.svg deleted file mode 100644 index 9cb7604f0..000000000 --- a/img/source/checkbox.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/img/source/divider.svg b/img/source/divider.svg deleted file mode 100644 index d34e1917a..000000000 --- a/img/source/divider.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/img/source/eye_hidden.svg b/img/source/eye_hidden.svg deleted file mode 100644 index abd5297b5..000000000 --- a/img/source/eye_hidden.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - diff --git a/img/source/eye_visible.svg b/img/source/eye_visible.svg deleted file mode 100644 index 47a34bed5..000000000 --- a/img/source/eye_visible.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/img/source/manual.svg b/img/source/manual.svg deleted file mode 100644 index 593cd2a9e..000000000 --- a/img/source/manual.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/img/source/plus.svg b/img/source/plus.svg deleted file mode 100644 index 6e0eb05b2..000000000 --- a/img/source/plus.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/img/source/star.svg b/img/source/star.svg deleted file mode 100644 index 9adbafe84..000000000 --- a/img/source/star.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/img/source/star_active.svg b/img/source/star_active.svg deleted file mode 100644 index da6686be9..000000000 --- a/img/source/star_active.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/img/source/task.svg b/img/source/task.svg deleted file mode 100644 index 850dd2f6c..000000000 --- a/img/source/task.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/img/source/task_active.svg b/img/source/task_active.svg deleted file mode 100644 index 25b3f6c5f..000000000 --- a/img/source/task_active.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/img/source/update.svg b/img/source/update.svg deleted file mode 100644 index 7baffd88b..000000000 --- a/img/source/update.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/img/sprites.png b/img/sprites.png deleted file mode 100644 index e63078709..000000000 Binary files a/img/sprites.png and /dev/null differ diff --git a/img/sprites.svg b/img/sprites.svg index a3b52cac2..67990d702 100644 --- a/img/sprites.svg +++ b/img/sprites.svg @@ -1,4108 +1 @@ - - - -image/svg+xml \ No newline at end of file + \ No newline at end of file diff --git a/img/src/add.svg b/img/src/add.svg new file mode 100644 index 000000000..f49f3c8f4 --- /dev/null +++ b/img/src/add.svg @@ -0,0 +1 @@ + diff --git a/img/src/all.svg b/img/src/all.svg new file mode 100644 index 000000000..28b0bfe36 --- /dev/null +++ b/img/src/all.svg @@ -0,0 +1 @@ + diff --git a/img/src/alphabetically.svg b/img/src/alphabetically.svg new file mode 100644 index 000000000..fc11466ae --- /dev/null +++ b/img/src/alphabetically.svg @@ -0,0 +1 @@ + diff --git a/img/src/calendar-due.svg b/img/src/calendar-due.svg new file mode 100644 index 000000000..e7ba7ca85 --- /dev/null +++ b/img/src/calendar-due.svg @@ -0,0 +1 @@ + diff --git a/img/src/calendar-overdue.svg b/img/src/calendar-overdue.svg new file mode 100644 index 000000000..838854c9c --- /dev/null +++ b/img/src/calendar-overdue.svg @@ -0,0 +1 @@ + diff --git a/img/src/calendar.svg b/img/src/calendar.svg new file mode 100644 index 000000000..84748d91b --- /dev/null +++ b/img/src/calendar.svg @@ -0,0 +1 @@ + diff --git a/img/src/checkmark-color.svg b/img/src/checkmark-color.svg new file mode 100644 index 000000000..bdf6fd97f --- /dev/null +++ b/img/src/checkmark-color.svg @@ -0,0 +1 @@ + diff --git a/img/src/checkmark.svg b/img/src/checkmark.svg new file mode 100644 index 000000000..78fd0a787 --- /dev/null +++ b/img/src/checkmark.svg @@ -0,0 +1 @@ + diff --git a/img/src/clock-due.svg b/img/src/clock-due.svg new file mode 100644 index 000000000..9a69c6125 --- /dev/null +++ b/img/src/clock-due.svg @@ -0,0 +1 @@ + diff --git a/img/src/clock-overdue.svg b/img/src/clock-overdue.svg new file mode 100644 index 000000000..a81c59a6e --- /dev/null +++ b/img/src/clock-overdue.svg @@ -0,0 +1 @@ + diff --git a/img/src/clock.svg b/img/src/clock.svg new file mode 100644 index 000000000..d4bfcc474 --- /dev/null +++ b/img/src/clock.svg @@ -0,0 +1 @@ + diff --git a/img/src/close.svg b/img/src/close.svg new file mode 100644 index 000000000..3cc6aa233 --- /dev/null +++ b/img/src/close.svg @@ -0,0 +1 @@ + diff --git a/img/src/current.svg b/img/src/current.svg new file mode 100644 index 000000000..c1da0939b --- /dev/null +++ b/img/src/current.svg @@ -0,0 +1 @@ + diff --git a/img/src/hide.svg b/img/src/hide.svg new file mode 100644 index 000000000..0a5d22b13 --- /dev/null +++ b/img/src/hide.svg @@ -0,0 +1 @@ + diff --git a/img/src/image-optimization.sh b/img/src/image-optimization.sh new file mode 100644 index 000000000..cf82e120d --- /dev/null +++ b/img/src/image-optimization.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +function recursive_optimize_images() { +cd $1; +optipng -o6 -strip all *.png; +jpegoptim --strip-all *.jpg; +for svg in `ls *.svg`; +do + mv $svg $svg.opttmp; + scour -i $svg.opttmp -o $svg --create-groups --enable-id-stripping --enable-comment-stripping --shorten-ids --remove-metadata --strip-xml-prolog --no-line-breaks; +done; +rm *.opttmp +for dir in `ls -d */`; +do + recursive_optimize_images $dir; + cd ..; +done; +} + +recursive_optimize_images ../ diff --git a/img/src/manual.svg b/img/src/manual.svg new file mode 100644 index 000000000..4fb2a8352 --- /dev/null +++ b/img/src/manual.svg @@ -0,0 +1 @@ + diff --git a/img/src/menu.svg b/img/src/menu.svg new file mode 100644 index 000000000..a84f37878 --- /dev/null +++ b/img/src/menu.svg @@ -0,0 +1 @@ + diff --git a/img/src/note.svg b/img/src/note.svg new file mode 100644 index 000000000..2ef5580fc --- /dev/null +++ b/img/src/note.svg @@ -0,0 +1 @@ + diff --git a/img/src/percent-active.svg b/img/src/percent-active.svg new file mode 100644 index 000000000..e57d8e25f --- /dev/null +++ b/img/src/percent-active.svg @@ -0,0 +1 @@ + diff --git a/img/src/percent.svg b/img/src/percent.svg new file mode 100644 index 000000000..703b0497c --- /dev/null +++ b/img/src/percent.svg @@ -0,0 +1 @@ + diff --git a/img/src/random.svg b/img/src/random.svg new file mode 100644 index 000000000..99e9d1b79 --- /dev/null +++ b/img/src/random.svg @@ -0,0 +1 @@ + diff --git a/img/src/settings.svg b/img/src/settings.svg new file mode 100644 index 000000000..05cef0558 --- /dev/null +++ b/img/src/settings.svg @@ -0,0 +1 @@ + diff --git a/img/src/sort-down.svg b/img/src/sort-down.svg new file mode 100644 index 000000000..1b9a1a20c --- /dev/null +++ b/img/src/sort-down.svg @@ -0,0 +1 @@ + diff --git a/img/src/sort-up.svg b/img/src/sort-up.svg new file mode 100644 index 000000000..53bc523e6 --- /dev/null +++ b/img/src/sort-up.svg @@ -0,0 +1 @@ + diff --git a/img/src/star-high.svg b/img/src/star-high.svg new file mode 100644 index 000000000..870ea011b --- /dev/null +++ b/img/src/star-high.svg @@ -0,0 +1 @@ + diff --git a/img/src/star-low.svg b/img/src/star-low.svg new file mode 100644 index 000000000..c89d4eb53 --- /dev/null +++ b/img/src/star-low.svg @@ -0,0 +1 @@ + diff --git a/img/src/star-medium.svg b/img/src/star-medium.svg new file mode 100644 index 000000000..c5cee674f --- /dev/null +++ b/img/src/star-medium.svg @@ -0,0 +1 @@ + diff --git a/img/src/star.svg b/img/src/star.svg new file mode 100644 index 000000000..dfd94ff1e --- /dev/null +++ b/img/src/star.svg @@ -0,0 +1 @@ + diff --git a/img/src/subtasks-hidden.svg b/img/src/subtasks-hidden.svg new file mode 100644 index 000000000..0939e3278 --- /dev/null +++ b/img/src/subtasks-hidden.svg @@ -0,0 +1 @@ + diff --git a/img/src/subtasks-hidden~hover.svg b/img/src/subtasks-hidden~hover.svg new file mode 100644 index 000000000..3a8ed2c5e --- /dev/null +++ b/img/src/subtasks-hidden~hover.svg @@ -0,0 +1 @@ + diff --git a/img/src/subtasks-visible.svg b/img/src/subtasks-visible.svg new file mode 100644 index 000000000..3a8ed2c5e --- /dev/null +++ b/img/src/subtasks-visible.svg @@ -0,0 +1 @@ + diff --git a/img/src/tag-active.svg b/img/src/tag-active.svg new file mode 100644 index 000000000..979621f87 --- /dev/null +++ b/img/src/tag-active.svg @@ -0,0 +1 @@ + diff --git a/img/src/tag.svg b/img/src/tag.svg new file mode 100644 index 000000000..cf1d2ced8 --- /dev/null +++ b/img/src/tag.svg @@ -0,0 +1 @@ + diff --git a/img/src/toggle.svg b/img/src/toggle.svg new file mode 100644 index 000000000..b9200589f --- /dev/null +++ b/img/src/toggle.svg @@ -0,0 +1 @@ + diff --git a/img/src/trash.svg b/img/src/trash.svg new file mode 100644 index 000000000..bd55a8619 --- /dev/null +++ b/img/src/trash.svg @@ -0,0 +1 @@ + diff --git a/img/tasks.svg b/img/tasks.svg index dd7f8fe3d..ac20544b3 100644 --- a/img/tasks.svg +++ b/img/tasks.svg @@ -1,14 +1,4 @@ - - - - - - - + + + diff --git a/js/Gruntfile.js b/js/Gruntfile.js index f0d34e0ab..85f8ba337 100644 --- a/js/Gruntfile.js +++ b/js/Gruntfile.js @@ -27,6 +27,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-wrap'); // grunt.loadNpmTasks('grunt-karma'); + grunt.loadNpmTasks('grunt-svg-sprite'); grunt.initConfig({ meta: { @@ -91,10 +92,39 @@ module.exports = function(grunt) { outputFile: 'test-results.xml' } } + }, + svg_sprite: { + basic: { + + // Target basics + expand: true, + cwd: '../img/src', + src: ['**/*.svg'], + dest: '..', + + // Target options + options: { + shape: { + transform: [] + }, + mode: { + css: { // Activate the «css» mode + bust: false, + common: 'icon', + dimensions: '', + prefix: '.ico-%s', + sprite: "../img/sprites.svg", + render: { + css: true // Activate CSS output (with default options) + } + } + } + } + } } }); // grunt.registerTask('ci', ['karma:continuous']); grunt.registerTask('js', ['concat']); grunt.registerTask('default', 'js'); - grunt.registerTask('build', ['concat']); + grunt.registerTask('build', ['concat', 'svg_sprite']); }; diff --git a/js/app/controllers/taskscontroller.js b/js/app/controllers/taskscontroller.js index 596a40d5b..13d49b4aa 100644 --- a/js/app/controllers/taskscontroller.js +++ b/js/app/controllers/taskscontroller.js @@ -357,6 +357,22 @@ } }; + this._$scope.getSortOrderIcon = function() { + switch (_$scope.settingsmodel.getById('various').sortOrder) { + case 'due': + case 'start': + return 'ico-calendar'; + case 'priority': + return 'ico-star'; + case 'alphabetically': + return 'ico-alphabetically'; + case 'manual': + return 'ico-manual'; + default: + return 'ico-menu'; + } + }; + this._$scope.setSortOrder = function($event, order) { _$scope.settingsmodel.getById('various').sortDirection = (_$scope.settingsmodel.getById('various').sortOrder === order) ? +!_$scope.settingsmodel.getById('various').sortDirection : 0; _$scope.settingsmodel.getById('various').sortOrder = order; diff --git a/js/app/services/businesslayer/searchbusinesslayer.js b/js/app/services/businesslayer/searchbusinesslayer.js index 6ae9b11da..0f5350c9e 100644 --- a/js/app/services/businesslayer/searchbusinesslayer.js +++ b/js/app/services/businesslayer/searchbusinesslayer.js @@ -78,7 +78,7 @@ } if (result.completed) { $row.find('div.task-item').addClass('done'); - $row.find('span.task-checkbox').addClass('task-checked'); + $row.find('span.task-checkbox').addClass('svg-checkmark'); } if (result.complete) { $row.find('div.percentdone').css({ diff --git a/js/package.json b/js/package.json index 26a62065f..771fe1b1f 100644 --- a/js/package.json +++ b/js/package.json @@ -30,7 +30,8 @@ "grunt-contrib-concat": "^1.0.1", "grunt-contrib-watch": "^1.0.0", "grunt-karma": "^2.0.0", - "grunt-wrap": "^0.3.0" + "grunt-wrap": "^0.3.0", + "grunt-svg-sprite": "1.3.7" }, "engines": { "node": ">=6" diff --git a/js/public/app.js b/js/public/app.js index 554cf0928..caaef96b7 100644 --- a/js/public/app.js +++ b/js/public/app.js @@ -1267,6 +1267,22 @@ angular.module('Tasks').controller('SettingsController', [ } }; + this._$scope.getSortOrderIcon = function() { + switch (_$scope.settingsmodel.getById('various').sortOrder) { + case 'due': + case 'start': + return 'ico-calendar'; + case 'priority': + return 'ico-star'; + case 'alphabetically': + return 'ico-alphabetically'; + case 'manual': + return 'ico-manual'; + default: + return 'ico-menu'; + } + }; + this._$scope.setSortOrder = function($event, order) { _$scope.settingsmodel.getById('various').sortDirection = (_$scope.settingsmodel.getById('various').sortOrder === order) ? +!_$scope.settingsmodel.getById('various').sortDirection : 0; _$scope.settingsmodel.getById('various').sortOrder = order; @@ -1982,7 +1998,7 @@ angular.module('Tasks').factory('ListsBusinessLayer', [ } if (result.completed) { $row.find('div.task-item').addClass('done'); - $row.find('span.task-checkbox').addClass('task-checked'); + $row.find('span.task-checkbox').addClass('svg-checkmark'); } if (result.complete) { $row.find('div.percentdone').css({ diff --git a/service/collectionsservice.php b/service/collectionsservice.php index 31c362c0b..66a16953a 100644 --- a/service/collectionsservice.php +++ b/service/collectionsservice.php @@ -49,27 +49,33 @@ public function getAll() { array( 'id' => "starred", 'displayname' => (string)$this->l10n->t('Important'), - 'show' => 2), + 'show' => 2, + 'icon' => 'ico-star'), array( 'id' => "today", 'displayname' => (string)$this->l10n->t('Today'), - 'show' => 2), + 'show' => 2, + 'icon' => 'ico-calendar'), array( 'id' => "week", 'displayname' => (string)$this->l10n->t('Week'), - 'show' => 2), + 'show' => 2, + 'icon' => 'ico-calendar'), array( 'id' => "all", 'displayname' => (string)$this->l10n->t('All'), - 'show' => 2), + 'show' => 2, + 'icon' => 'ico-all'), array( 'id' => "current", 'displayname' => (string)$this->l10n->t('Current'), - 'show' => 2), + 'show' => 2, + 'icon' => 'ico-current'), array( 'id' => "completed", 'displayname' => (string)$this->l10n->t('Completed'), - 'show' => 2) + 'show' => 2, + 'icon' => 'ico-checkmark') ); foreach ($collections as $key => $collection){ $tmp = $this->settings->getUserValue($this->userId, $this->appName,'show_'.$collection['id']); diff --git a/templates/colorpicker.html b/templates/colorpicker.html index 7f95e9fe7..232e0694b 100644 --- a/templates/colorpicker.html +++ b/templates/colorpicker.html @@ -5,5 +5,7 @@ ng-style="{ 'background-color':color}; ">
  • + ng-style="{ 'background-color':random}; "> + + diff --git a/templates/main.php b/templates/main.php index c85f5c0ab..a5565143a 100644 --- a/templates/main.php +++ b/templates/main.php @@ -10,6 +10,7 @@ script('tasks', 'vendor/jquery-timepicker/jquery.ui.timepicker'); script('tasks', 'vendor/ical.js/build/ical'); style('tasks', 'style'); + style('tasks', 'sprite'); style('tasks', 'vendor/angularui/ui-select/select2'); ?> @@ -25,8 +26,8 @@ class="collection" dnd-drop="dropCollection(event, index, item)" dnd-dragover="dragoverCollection(event, index)"> - - + + {{ collection.displayname }} @@ -98,7 +99,7 @@ class="collection"
  • - + t('Add List...')); ?>
    @@ -158,8 +159,8 @@ class="collection"
    @@ -167,44 +168,44 @@ class="collection" diff --git a/templates/part.details.php b/templates/part.details.php index b397dc814..a461f3911 100644 --- a/templates/part.details.php +++ b/templates/part.details.php @@ -1,10 +1,10 @@
    - + - +
    - +
    {{ task.start | startDetails }}
    - + - +
    @@ -34,21 +34,21 @@
    - +
    {{ task.due | dateDetails }}
    - + - +
    - + - +
    @@ -77,28 +77,28 @@
    -->
    - +
    {{ task.priority | priorityDetails}}
    - + - +
    - +
    {{ task.complete | percentDetails}}
    - + - +
    @@ -106,7 +106,7 @@
    - + @@ -141,7 +141,7 @@
  • - + {{ comment.name }}
    @@ -156,10 +156,10 @@ --> - + - + diff --git a/templates/part.taskbody.php b/templates/part.taskbody.php index be501d828..03fc18279 100644 --- a/templates/part.taskbody.php +++ b/templates/part.taskbody.php @@ -2,31 +2,30 @@ type="task" taskID="{{ task.uri }}" ng-class="{active: route.taskID==task.uri, subtasks: hasSubtasks(task), completedsubtasks: hasCompletedSubtasks(task), subtaskshidden: task.hideSubtasks, attachment: task.note!=''}"> - +
    - + - + - + - + - + - + {{ task.due | dateTaskList }} {{ task.calendar.displayname }}