From cbd1d83c3d4edea462d3edfc00d93a6f7960c80f Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 2 Apr 2018 17:46:14 +0000 Subject: [PATCH] Elastic: Various calendar UI elements and calendar printing --- plugins/calendar/calendar_ui.js | 113 +++- plugins/calendar/lib/calendar_ui.php | 92 +-- plugins/calendar/localization/en_US.inc | 2 +- plugins/calendar/print.js | 29 +- .../skins/elastic/templates/calendar.html | 41 +- .../skins/elastic/templates/eventedit.html | 4 +- .../skins/elastic/templates/print.html | 32 +- .../skins/larry/templates/calendar.html | 2 +- .../skins/elastic/include/calendar.less | 554 +++++++++++++++--- .../skins/elastic/include/libcalendaring.less | 108 ++-- .../skins/elastic/include/tasklist.less | 4 + plugins/libkolab/skins/elastic/libkolab.less | 2 +- .../skins/elastic/templates/mainview.html | 4 +- .../skins/elastic/templates/taskedit.html | 3 +- plugins/tasklist/tasklist_ui.php | 2 +- 15 files changed, 735 insertions(+), 257 deletions(-) diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js index 3792299e..533d9068 100644 --- a/plugins/calendar/calendar_ui.js +++ b/plugins/calendar/calendar_ui.js @@ -73,11 +73,11 @@ function rcube_calendar_ui(settings) // general datepicker settings var datepicker_settings = { // translate from fullcalendar format to datepicker format - dateFormat: settings['date_format'].replace(/M/g, 'm').replace(/mmmmm/, 'MM').replace(/mmm/, 'M').replace(/dddd/, 'DD').replace(/ddd/, 'D').replace(/yy/g, 'y'), - firstDay : settings['first_day'], - dayNamesMin: settings['days_short'], - monthNames: settings['months'], - monthNamesShort: settings['months'], + dateFormat: settings.date_format.replace(/M/g, 'm').replace(/mmmmm/, 'MM').replace(/mmm/, 'M').replace(/dddd/, 'DD').replace(/ddd/, 'D').replace(/yy/g, 'y'), + firstDay: settings.first_day, + // dayNamesMin: settings.days_short, + monthNames: settings.months, + monthNamesShort: settings.months, changeMonth: false, showOtherMonths: true, selectOtherMonths: true @@ -110,7 +110,7 @@ function rcube_calendar_ui(settings) titleFormat: { month: 'MMMM yyyy', week: settings.dates_long, - day: 'dddd ' + settings['date_long'], + day: 'dddd ' + settings.date_long, table: settings.dates_long }, listPage: 7, // advance one week in agenda view @@ -386,7 +386,7 @@ function rcube_calendar_ui(settings) changed = parseISO8601(event.changed); $('.event-created', $dialog).text(created ? format_datetime(created) : rcmail.gettext('unknown','calendar')); $('.event-changed', $dialog).text(changed ? format_datetime(changed) : rcmail.gettext('unknown','calendar')); - $('#event-created-changed').show() + $('#event-created,#event-changed,#event-created-changed').show() } // create attachments list @@ -452,22 +452,22 @@ function rcube_calendar_ui(settings) if (morelink) { $('#event-attendees .event-text').append(morelink); morelink.click(function(e){ - rcmail.show_popup_dialog( + rcmail.simple_dialog( '
' + html + overflow + '
', rcmail.gettext('tabattendees','calendar'), null, - { width:450, modal:false }); + {width: 450, cancel_button: 'close'}); $('#all-event-attendees a.mailtolink').click(event_attendee_click); return false; - }) + }); } } if (mystatus && !rsvp) { - $('#event-partstat').show().find('.changersvp') + $('#event-partstat').show().find('.changersvp, .event-text') .removeClass('accepted tentative declined delegated needs-action unknown') - .addClass(mystatus) - .find('.event-text') + .addClass(mystatus); + $('#event-partstat').find('.event-text') .text(rcmail.gettext('status' + mystatus, 'libcalendaring')); } @@ -511,15 +511,13 @@ function rcube_calendar_ui(settings) }); } - if (!buttons.length) { - buttons.push({ - text: rcmail.gettext('close', 'calendar'), - 'class': 'cancel', - click: function() { - $dialog.dialog('close'); - } - }); - } + buttons.push({ + text: rcmail.gettext('close', 'calendar'), + 'class': 'cancel', + click: function() { + $dialog.dialog('close'); + } + }); // open jquery UI dialog $dialog.dialog({ @@ -2509,7 +2507,7 @@ function rcube_calendar_ui(settings) if (action == 'remove' && cal.group != 'shared' && !_is_organizer && _is_attendee) { decline = true; checked = event.status != 'CANCELLED' ? checked : ''; - html += '
' + + html += '
' + '
'; @@ -2517,7 +2515,7 @@ function rcube_calendar_ui(settings) else if (_is_organizer) { notify = true; if (settings.itip_notify & 2) { - html += '
' + + html += '
' + '
'; @@ -2538,13 +2536,12 @@ function rcube_calendar_ui(settings) future_disabled = ' disabled'; } - html += '
' + - rcmail.gettext(message_label, 'calendar') + '
' + + html += '
' + rcmail.gettext(message_label, 'calendar') + '
' + ''; } @@ -4132,6 +4129,12 @@ function rcube_calendar_ui(settings) } // end rcube_calendar class +// Update layout after initialization +// In devel mode we have to wait until all styles are applied by less +if (rcmail.env.devel_mode && window.less) { + less.pageLoadFinished.then(function() { $(window).resize(); }); +} + /* calendar plugin initialization */ window.rcmail && rcmail.addEventListener('init', function(evt) { // configure toolbar buttons @@ -4197,4 +4200,54 @@ window.rcmail && rcmail.addEventListener('init', function(evt) { // show toolbar $('#toolbar').show(); + // Elastic mods + if ($('#calendar').data('elastic-mode')) { + var selector = $('
').appendTo('.fc-header-left'), + nav = $('
').appendTo('.fc-header-right'); + + $('.fc-header-left > span').each(function() { + var cl = 'btn btn-secondary', btn = $(this); + + if (btn.is('.fc-state-active')) { + cl += ' active'; + } + + $('
-
+

-
- +
+ +
+
@@ -100,11 +105,11 @@
-
+
- - - + + +
@@ -127,11 +132,11 @@
-
+
-
+
@@ -288,8 +293,8 @@
@@ -378,16 +383,4 @@ - - diff --git a/plugins/calendar/skins/elastic/templates/eventedit.html b/plugins/calendar/skins/elastic/templates/eventedit.html index 0fac8f84..7cbe0a26 100644 --- a/plugins/calendar/skins/elastic/templates/eventedit.html +++ b/plugins/calendar/skins/elastic/templates/eventedit.html @@ -120,7 +120,7 @@

- @@ -129,7 +129,7 @@

- diff --git a/plugins/calendar/skins/elastic/templates/print.html b/plugins/calendar/skins/elastic/templates/print.html index 37471d96..4b5a23d5 100644 --- a/plugins/calendar/skins/elastic/templates/print.html +++ b/plugins/calendar/skins/elastic/templates/print.html @@ -1,28 +1,18 @@ - - - -<roundcube:object name="pagetitle" /> - - + -
-
- - - -
+ - - -
- -
- -
+ - - \ No newline at end of file + diff --git a/plugins/calendar/skins/larry/templates/calendar.html b/plugins/calendar/skins/larry/templates/calendar.html index cd1b6e93..a42b985c 100644 --- a/plugins/calendar/skins/larry/templates/calendar.html +++ b/plugins/calendar/skins/larry/templates/calendar.html @@ -57,7 +57,7 @@

- +
diff --git a/plugins/libkolab/skins/elastic/include/calendar.less b/plugins/libkolab/skins/elastic/include/calendar.less index 12ffe523..e28ef6cf 100644 --- a/plugins/libkolab/skins/elastic/include/calendar.less +++ b/plugins/libkolab/skins/elastic/include/calendar.less @@ -36,6 +36,10 @@ content: @fa-var-cube; } +a.button.today:before { + .font-icon-regular(@fa-var-calendar); +} + .listing { li { & > div { @@ -141,6 +145,11 @@ fieldset.categories .input-group { } } +#calendar.content { + overflow: hidden !important; // fullcalendar widget implements scrolling on its own + position: relative; +} + .calendar-datepicker { // overwrite jQuery-UI datepicker styles .ui-datepicker { @@ -168,16 +177,47 @@ fieldset.categories .input-group { } // Fullcalendar styles +@color-calendar-border: @color-layout-border; + .fc { flex: auto !important; .fc-header { + tr { + background-color: @color-black-shade-bg; + } } .fc-header-left { + width: 25%; + + span { + display: none; + } + + } + + .fc-header-center { + text-align: center; + + h2 { + margin: 0; + color: @color-black-shade-text; + white-space: nowrap; + } } .fc-header-right { + width: 25%; + text-align: right; + + span { + display: none; + } + } + + .btn-group { + padding: .5rem; } .fc-header-title { @@ -187,9 +227,6 @@ fieldset.categories .input-group { } } - .fc-content { - } - .fc-view { width: 100%; overflow: hidden; @@ -199,13 +236,12 @@ fieldset.categories .input-group { .fc-widget-header, // , usually .fc-widget-content { // , usually - border: 1px solid #ddd; + border: 1px solid @color-calendar-border; } .fc-cell-overlay { // semi-transparent rectangle while dragging background: #bce8f1; opacity: .3; - filter: alpha(opacity=30); /* for IE */ } // Buttons @@ -222,55 +258,16 @@ fieldset.categories .input-group { } - // Our default prev/next buttons use HTML entities like ‹ › « » - // and we'll try to make them look good cross-browser. - - .fc-text-arrow { - margin: 0 .1em; - font-size: 2em; - } - - .fc-button-prev .fc-text-arrow, - .fc-button-next .fc-text-arrow { // for ‹ › - font-weight: bold; - } - - // icon (for jquery ui) - - .fc-button { - .fc-icon-wrap { - position: relative; - float: left; - top: 50%; - } - - .ui-icon { - position: relative; - float: left; - margin-top: -50%; - } - } - // Button states // borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/) .fc-state-highlight { // today cell, TODO: add .fc-today to - background: #fcf8e3; + background: tint(@color-main, 90%); } - +/* .fc-state-default { border: 1px solid; background-color: #f5f5f5; - - &.fc-corner-left { // non-theme - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - } - - &.fc-corner-right { // non-theme - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - } } .fc-state-hover, @@ -297,6 +294,7 @@ fieldset.categories .input-group { background-image: none; opacity: 0.65; } +*/ // Global Event Styles @@ -348,11 +346,7 @@ fieldset.categories .input-group { } .ui-resizable-handle { - display: block; - position: absolute; z-index: 99999; - font-size: 300%; - line-height: 50%; } // Horizontal Events @@ -365,33 +359,23 @@ fieldset.categories .input-group { .fc-ltr .fc-event-hori.fc-event-start, .fc-rtl .fc-event-hori.fc-event-end { border-left-width: 1px; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; } .fc-ltr .fc-event-hori.fc-event-end, .fc-rtl .fc-event-hori.fc-event-start { border-right-width: 1px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; } // resizable - .fc-event-hori .ui-resizable-e { - top: 0 !important; // importants override pre jquery ui 1.7 styles - right: -3px !important; - width: 7px !important; - height: 100% !important; - cursor: e-resize; - } + .fc-event-hori { + .ui-resizable-e { + cursor: e-resize; + } - .fc-event-hori .ui-resizable-w { - top: 0 !important; - left: -3px !important; - width: 7px !important; - height: 100% !important; - cursor: w-resize; + .ui-resizable-w { + cursor: w-resize; + } } // Reusable Separate-border Table @@ -399,7 +383,6 @@ fieldset.categories .input-group { .fc-border-separate { border-collapse: separate; - th, td { border-width: 1px 0 0 1px; @@ -420,6 +403,11 @@ fieldset.categories .input-group { } } + .fc-event-date, + .fc-event-time { + white-space: nowrap; + } + // Month View, Basic Week View, Basic Day View .fc-week-number { @@ -431,6 +419,10 @@ fieldset.categories .input-group { } } + .fc-day { + vertical-align: top; + } + .fc-grid { th { text-align: center; @@ -453,6 +445,7 @@ fieldset.categories .input-group { // event styles .fc-event-time { font-weight: bold; + white-space: nowrap; } // right-to-left @@ -471,11 +464,7 @@ fieldset.categories .input-group { text-decoration: none; cursor: pointer; padding: 1px; - } - - .fc-first .fc-day-header, - .fc-week .fc-first { - border-left: 0; + color: @color-link !important; } // Agenda Week View, Agenda Day View @@ -496,6 +485,7 @@ fieldset.categories .input-group { text-align: right; white-space: nowrap; font-weight: normal; + font-size: .9rem; border-left: 0; } @@ -503,7 +493,7 @@ fieldset.categories .input-group { font-weight: bold; } - .fc-agenda .fc-day-content { + .fc-day-content { padding: 2px 2px 1px; } } @@ -533,12 +523,8 @@ fieldset.categories .input-group { // divider (between all-day and slots) .fc-agenda-divider-inner { - height: 2px; + height: 1px; overflow: hidden; - - .fc-widget-header & { - background: #eee; - } } // slot rows @@ -583,19 +569,16 @@ fieldset.categories .input-group { &.fc-event-start { border-top-width: 1px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; } &.fc-event-end { border-bottom-width: 1px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; } .fc-event-time { white-space: nowrap; font-size: 10px; + font-weight: bold; } .fc-event-inner { @@ -636,7 +619,7 @@ fieldset.categories .input-group { margin: 0; padding: 0; border: none; - border-top: 2px solid #3ec400; + border-top: 2px solid @color-success; z-index: 999; } @@ -644,9 +627,9 @@ fieldset.categories .input-group { .fc-view-list, .fc-view-table { - border: 1px solid #ccc; // TODO: border border-left: 0; border-bottom: 0; + border-top: 1px solid @color-layout-border; width: auto; .fc-list-header, @@ -654,6 +637,11 @@ fieldset.categories .input-group { border-width: 0; border-bottom-width: 1px; padding: 3px 5px; + font-weight: bold; + } + + .fc-event { + font-size: 1rem; } } @@ -664,7 +652,7 @@ fieldset.categories .input-group { } .fc-view-list .fc-last { - border-bottom-width: 0; + border-bottom: 0; } .fc-list-section .fc-event { @@ -679,7 +667,7 @@ fieldset.categories .input-group { td { padding: 2px; - border-bottom: 1px solid #ccc; + border-bottom: 1px solid @color-calendar-border; } td.fc-event-handle { @@ -692,15 +680,10 @@ fieldset.categories .input-group { } .fc-event-handle { - .fc-event-skin { - border-radius: 2px; - } - .fc-event-inner { display: block; width: 8px; height: 10px; - border-radius: 2px; } } @@ -761,10 +744,239 @@ fieldset.categories .input-group { .fc-icon-sensitive:before { content: @fa-var-lock; } + + // remove redundant borders + .fc-first tbody .fc-day-header, + .fc-first .fc-day-header.fc-first, + .fc-week .fc-first { + border-left: 0; + } + + .fc-agenda-days tbody .fc-last > *, + .fc-agenda-slots tr:last-child td, + .fc-week.fc-last .fc-day { + border-bottom: 0; + } +} + +// fullcalendar style overrides for printing +.print-content { + .fc-header { + tr { + background-color: #fff; + } + } + + .fc-header-center { + width: 100%; + h2 { + color: #000; + padding-bottom: .75rem; + font-size: 1.5rem !important; + } + } + + .fc-agenda-gutter, + .fc-header-left, + .fc-header-right { + display: none !important; + } + + .fc-view { + overflow: visible; + } + + .fc-event-skin, + .fc-event-inner .fc-event-skin { + color: black; + background-color: #fff !important; + } + + .fc-event-title { + font-weight: bold; + } + + .fc-event-hori { + .fc-event-title { + font-weight: normal; + white-space: nowrap; + } + + .fc-event-time { + white-space: nowrap; + font-weight: normal !important; + font-size: 10px; + padding-right: 0.6em; + } + } + + .fc-grid .fc-event-time { + font-weight: normal !important; + padding-right: 0.3em; + } + + .fc-event-cateories { + font-style: italic; + } + + .fc-event-location { + font-size: 90%; + } + + .fc-agenda-slots td div { + height: 1.4em; + } + + .fc-widget-header, + .fc-mon, .fc-tue, .fc-wed, .fc-thu, .fc-fri { + background-color: #fff; + } + + .fc-widget-header, .fc-widget-content { + border-color: @color-calendar-border; + } + + .fc-view-list, .fc-view-table { + border: 0; + } + + .fc-view-list div.fc-list-header, + .fc-view-table td.fc-list-header { + padding: 0.3em; + background: #fff; + font-weight: bold; + font-size: 1.2em; + color: #333; + border-color: @color-calendar-border; + border-style: solid; + border-width: 1px 0; + } + + .fc-list-section .fc-event { + cursor: auto; + } + + .fc-view-table { + tr.fc-event td, + tr.fc-event td.fc-event-handle { + border-color: @color-calendar-border; + padding-top: 0.5em; + padding-bottom: 0.5em; + } + + tr.fc-last td { + border: 0; + } + + tr.fc-event .fc-event-description { + padding-left: 2em; + padding-top: 0em; + } + + col.fc-event-location { + width: 20%; + } + } + + .fc-event-vert .fc-event-description { + font-size: 90%; + font-style: italic; + } + + .fc-view-month .fc-event-hori .fc-event-inner { + background: #fff !important; + } + + // add back borders removed in non-print view + .fc-agenda .fc-agenda-axis, + .fc-first .fc-day-header, + .fc-week .fc-first { + border-left: 1px solid @color-calendar-border; + } + + .fc-agenda-days th:nth-last-child(2), + .fc-agenda-allday td, + .fc-agenda-slots td.fc-widget-content { + border-right: 1px solid @color-calendar-border; + } + + .fc-agenda-days tr.fc-last > *, + .fc-week.fc-last .fc-day { + border-bottom: 1px solid @color-calendar-border; + } +} + +body.task-calendar { + #print-layout { + #calendar-view-selector { + float: right; + padding-top: .25rem; + } + } + + @media screen and (min-width: (@screen-width-small + 1px)) { + & > #layout > div.sidebar { + flex: 2 !important; + max-width: 400px; + } + } + + // improve datepicker + .ui-datepicker { + td { + width: 12.5%; + } + + .ui-datepicker-week-col { + color: @color-black-shade-border; + text-align: center; + } + } + + .ui-datepicker-inline { + .ui-datepicker-week-col { + color: @color-link; + cursor: pointer; + } + + .ui-datepicker-activerange { + background-color: @color-list-selected-background; + } + } } #timezone-display { + font-size: .9rem; + color: @color-black-shade-text; +} +#agendaoptions { + padding: 0 .5rem .5rem .5rem; + display: flex; + background-color: @color-black-shade-bg; + + .input-group { + padding-right: .5rem; + flex-wrap: nowrap; + width: 50%; + + &:last-child { + padding-right: 0; + } + } + + select { + min-width: 7em; + } + + .input-group-prepend { + overflow: hidden; + + span { + display: block; + .overflow-ellipsis; + } + } } #eventshow { @@ -786,6 +998,78 @@ fieldset.categories .input-group { .event-attendees { margin-bottom: 1rem; + + .attendee { + margin-right: .25rem; + } + } + + .event-partstat { + & > span { + display: flex; + } + + .rsvp-status { + &:before { + display: inline; + float: none; + } + } + + .changersvp { + cursor: pointer; + font-size: 1.2rem; + margin-left: 1em; + + &:before { + &:extend(.font-icon-class); + content: @fa-var-pen-square; + float: none; + display: inline; + line-height: 1; + } + } + + .inner { + display: none; + } + } + + .faded { + color: @color-black-shade-text; + } +} + +#eventedit { + .edit-attendees-table td { + padding-top: .15rem; + + &.role { + padding-left: 0; + width: 9em; + } + } +} + +#fish-eye-view { + padding: 0; + border-bottom: 1px solid @color-calendar-border; + + .fc-header { + display: none; + } + + .fc-view { + position: initial !important; + } + + .fc-agenda-days tr.fc-first th { + border-top: 0; + } + + .fc-agenda-divider + div { + height: 100% !important; + overflow: initial !important; } } @@ -1138,7 +1422,8 @@ fieldset.categories .input-group { flex: 4; border: 1px solid @color-layout-border; min-width: 300px; - justify-content: center; + justify-content: center; + .header { border-bottom: 1px solid @color-layout-border; display: flex; @@ -1184,3 +1469,86 @@ fieldset.categories .input-group { border: 1px solid @color-layout-border !important; } } + +@media screen and (max-width: @screen-width-small) { + .fc { + .fc-header-left { + display: block; + width: 100%; + padding: 0; + + button { + flex: 1 1 auto; + border-radius: 0; + } + + .btn-group { + padding: 0; + display: flex; + } + } + + .fc-header-center, + .fc-header-right { + display: none; + } + } + + #agendaoptions { + padding-top: .5rem; + } + + .calendar-scheduler { + .schedule-range { + width: 100%; + } + } +} + +@media screen and (min-width: (@screen-width-small + 1px)) and (max-width: 920px) { + .fc { + .fc-header { + display: block; + + tr { + display: flex; + } + } + + .fc-header-center { + .overflow-ellipsis; + flex: 1; + + h2 { + font-size: 1rem; + line-height: 1; + padding-top: .75rem; + } + } + + .fc-header-left, + .fc-header-right { + width: auto; + + .btn { + padding-left: .5rem; + padding-right: .5rem; + } + } + } +} + +.header-title { + position: relative; + + .tz { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + line-height: 2; + font-size: .8rem; + font-weight: normal; + color: @color-black-shade-text; + } +} diff --git a/plugins/libkolab/skins/elastic/include/libcalendaring.less b/plugins/libkolab/skins/elastic/include/libcalendaring.less index febf93ae..4283702e 100644 --- a/plugins/libkolab/skins/elastic/include/libcalendaring.less +++ b/plugins/libkolab/skins/elastic/include/libcalendaring.less @@ -106,46 +106,6 @@ color: #666; font-style: italic; } - - &:before { - line-height: 1.1; - color: lighten(@color-black, 25%); - } - - &.loading:before { - &:extend(.font-icon-class); - .animated-icon-class; - content: @fa-var-circle-notch; - line-height: 1; - } - - &.declined:before { - &:extend(.font-icon-class); - content: @fa-var-ban; - color: @color-error; - } - - &.tentative:before { - &:extend(.font-icon-class); - content: @fa-var-check-circle; - color: @color-warning; - } - - &.accepted:before { - &:extend(.font-icon-class); - content: @fa-var-check-circle; - color: @color-success; - } - - &.delegated:before { - &:extend(.font-icon-class); - content: @fa-var-share; - } - - &.needs-action:before { - &:extend(.font-icon-class); - content: @fa-var-question-circle; - } } .folder-select { @@ -158,6 +118,50 @@ } } +.rsvp-status { + &:before { + line-height: 1.1; + color: lighten(@color-black, 25%); + float: none; + display: inline; + } + + &.loading:before { + &:extend(.font-icon-class); + .animated-icon-class; + content: @fa-var-circle-notch; + line-height: 1; + } + + &.declined:before { + &:extend(.font-icon-class); + content: @fa-var-ban; + color: @color-error; + } + + &.tentative:before { + &:extend(.font-icon-class); + content: @fa-var-check-circle; + color: @color-warning; + } + + &.accepted:before { + &:extend(.font-icon-class); + content: @fa-var-check-circle; + color: @color-success; + } + + &.delegated:before { + &:extend(.font-icon-class); + content: @fa-var-share; + } + + &.needs-action:before { + &:extend(.font-icon-class); + content: @fa-var-question-circle; + } +} + .attendee { &:before { &:extend(.font-icon-class); @@ -643,4 +647,28 @@ html.touch { margin-right: .25rem; } } + + .message { + display: flex; + } + + & + .savemode { + margin-top: 1rem; + + a.btn { + margin-right: .5rem; + } + } + + & > .savemode { + margin-top: .5rem; + + label { + margin-right: 1rem; + } + + input { + margin-right: .25rem; + } + } } diff --git a/plugins/libkolab/skins/elastic/include/tasklist.less b/plugins/libkolab/skins/elastic/include/tasklist.less index 781bd248..e4e7668f 100644 --- a/plugins/libkolab/skins/elastic/include/tasklist.less +++ b/plugins/libkolab/skins/elastic/include/tasklist.less @@ -304,6 +304,10 @@ html.touch #tasklist { .attachmentslist li { margin-right: 1em; } + + .faded { + color: @color-black-shade-text; + } } #taskedit-attachment-form { diff --git a/plugins/libkolab/skins/elastic/libkolab.less b/plugins/libkolab/skins/elastic/libkolab.less index 036f8be0..238d6f31 100644 --- a/plugins/libkolab/skins/elastic/libkolab.less +++ b/plugins/libkolab/skins/elastic/libkolab.less @@ -390,7 +390,7 @@ button.btn.print:before { padding: .5em 1em; background-color: @color-black-shade-bg; - button { + button.print { margin-right: 1rem; } diff --git a/plugins/tasklist/skins/elastic/templates/mainview.html b/plugins/tasklist/skins/elastic/templates/mainview.html index 33e9c2de..ec74e36f 100644 --- a/plugins/tasklist/skins/elastic/templates/mainview.html +++ b/plugins/tasklist/skins/elastic/templates/mainview.html @@ -166,11 +166,11 @@
-
+
-
+
diff --git a/plugins/tasklist/skins/elastic/templates/taskedit.html b/plugins/tasklist/skins/elastic/templates/taskedit.html index 3756f26d..49d9e4d6 100644 --- a/plugins/tasklist/skins/elastic/templates/taskedit.html +++ b/plugins/tasklist/skins/elastic/templates/taskedit.html @@ -102,7 +102,8 @@

- +
diff --git a/plugins/tasklist/tasklist_ui.php b/plugins/tasklist/tasklist_ui.php index eb5567fc..a6e9158f 100644 --- a/plugins/tasklist/tasklist_ui.php +++ b/plugins/tasklist/tasklist_ui.php @@ -549,7 +549,7 @@ class tasklist_ui ))) ); - $checkbox = new html_checkbox(array('name' => 'attachments', 'id' => 'task-export-attachments', 'value' => 1, 'class' => 'form-check-input')); + $checkbox = new html_checkbox(array('name' => 'attachments', 'id' => 'task-export-attachments', 'value' => 1, 'class' => 'form-check-input pretty-checkbox')); $html .= html::div('form-section form-group row form-check', html::label(array('for' => 'task-export-attachments', 'class' => 'col-sm-4 col-form-label'), $this->plugin->gettext('exportattachments')) . html::div('col-sm-8', $checkbox->show(1))