diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index 52bfe757..67fccb6d 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -2638,7 +2638,7 @@ class calendar extends rcube_plugin && ($response['action'] == 'rsvp' || $response['action'] == 'import') ) { $calendars = $this->driver->list_calendars($mode); - $calendar_select = new html_select(array('name' => 'calendar', 'id' => 'itip-saveto', 'is_escaped' => true)); + $calendar_select = new html_select(array('name' => 'calendar', 'id' => 'itip-saveto', 'is_escaped' => true, 'class' => 'form-control')); $calendar_select->add('--', ''); $numcals = 0; foreach ($calendars as $calendar) { @@ -2912,7 +2912,7 @@ class calendar extends rcube_plugin ) . '%before%' . $this->mail_agenda_event_row($event, 'current') . '%after%'); } - $html .= html::div('calendar-invitebox', + $html .= html::div('calendar-invitebox invitebox boxinformation', $this->itip->mail_itip_inline_ui( $event, $ical_objects->method, diff --git a/plugins/libkolab/skins/elastic/include/calendar.less b/plugins/libkolab/skins/elastic/include/calendar.less index 2ea170fd..f4c6f9c5 100644 --- a/plugins/libkolab/skins/elastic/include/calendar.less +++ b/plugins/libkolab/skins/elastic/include/calendar.less @@ -50,3 +50,41 @@ fieldset.categories .input-group { } } } + +.calendar-invitebox { + & > i.icon:before { + content: @fa-var-calendar !important; + } +} + +.calendar-agenda-preview { + display: none; + margin-top: .5rem; + border-top: 1px solid #ddd; + + h3 { + margin-top: .5rem; + } + + .event-row { + white-space: nowrap; + .overflow-ellipsis; + + &.current { + color: #333; + font-weight: bold; + } + + &.no-event { + color: @color-black-shade-text; + font-style: italic; + } + } + + .event-title { + padding-left: .5rem; + } + + .event-date { + } +} diff --git a/plugins/libkolab/skins/elastic/include/libcalendaring.less b/plugins/libkolab/skins/elastic/include/libcalendaring.less new file mode 100644 index 00000000..826125b9 --- /dev/null +++ b/plugins/libkolab/skins/elastic/include/libcalendaring.less @@ -0,0 +1,146 @@ +/** + * Kolab core library + * + * This file contains Elastic skin styles for libcalendaring plugin. + * + * @author Aleksander Machniak + * + * Copyright (C) 2012-2018, Kolab Systems AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +.invitebox { + & > i.icon { + position: absolute; + top: 0; + padding-top: .5em; + } + + & > span { + padding-left: 2.5em; + } + + td { + padding: 2px; + + &.ititle { + font-weight: bold; + padding-right: 0.5em; + } + + &.label { + color: #666; + padding-right: 1em; + } + + &.sensitivity { + font-weight: bold; + } + + &.recurrence-id { + text-transform: uppercase; + font-style: italic; + } + + &.date.modified { + font-weight: bold; + color: @color-error; + } + + em { + font-weight: bold; + } + } + + .itip-buttons { + display: flex; + flex-wrap: wrap; + + input.button { + margin: 0 .25rem .25rem 0; + } + } + + .rsvp-buttons { + width: 100%; + } + + .itip-reply-controls { + margin-top: .25rem; + + a { + margin-left: 1em; + } + } + + .rsvp-status { + margin: .5rem 0; + + &.hint { + 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 { + white-space: nowrap; + + select { + display: initial; + width: auto; + } + } +} + diff --git a/plugins/libkolab/skins/elastic/include/tasklist.less b/plugins/libkolab/skins/elastic/include/tasklist.less index efcc65ca..fed0749d 100644 --- a/plugins/libkolab/skins/elastic/include/tasklist.less +++ b/plugins/libkolab/skins/elastic/include/tasklist.less @@ -27,3 +27,9 @@ content: @fa-var-tasks; } } + +.tasklist-invitebox { + & > i.icon:before { + content: @fa-var-tasks !important; + } +} diff --git a/plugins/libkolab/skins/elastic/libkolab.less b/plugins/libkolab/skins/elastic/libkolab.less index e5d605d1..a7f4eb62 100644 --- a/plugins/libkolab/skins/elastic/libkolab.less +++ b/plugins/libkolab/skins/elastic/libkolab.less @@ -282,4 +282,5 @@ a.history { @import "include/kolab_files"; @import "include/kolab_notes"; @import "include/kolab_tags"; +@import "include/libcalendaring"; @import "include/tasklist"; diff --git a/plugins/tasklist/tasklist.php b/plugins/tasklist/tasklist.php index 47461d6b..62313d4a 100644 --- a/plugins/tasklist/tasklist.php +++ b/plugins/tasklist/tasklist.php @@ -1884,7 +1884,7 @@ class tasklist extends rcube_plugin // get prepared inline UI for this event object if ($ical_objects->method) { - $html .= html::div('tasklist-invitebox', + $html .= html::div('tasklist-invitebox invitebox boxinformation', $this->itip->mail_itip_inline_ui( $task, $ical_objects->method, @@ -2394,7 +2394,7 @@ class tasklist extends rcube_plugin // get a list of writeable lists to save new tasks to if ((!$existing || $is_shared) && $response['action'] == 'rsvp' || $response['action'] == 'import') { $lists = $this->driver->get_lists($mode); - $select = new html_select(array('name' => 'tasklist', 'id' => 'itip-saveto', 'is_escaped' => true)); + $select = new html_select(array('name' => 'tasklist', 'id' => 'itip-saveto', 'is_escaped' => true, 'class' => 'form-control')); $select->add('--', ''); foreach ($lists as $list) {